互動功能發起端 SDK
概述
本專案是保利威直播互動功能發起端(即開播端、管理端等)邏輯層 SDK,可基於本 SDK 開發互動功能的發起介面。
使用說明
安裝
npm i -S @polyv/interactions-launch-sdk
引入
import * as InteractionsLaunchSDK from '@polyv/interactions-launch-sdk';
全域初始化
注意:無論使用哪個互動功能,都要先執行全域初始化。全域初始化只需要執行一次。
按照以下步驟進行全域初始化:
- 設定日誌列印等級。
日誌會列印到控制台並上傳到 polyv 伺服器。日誌上傳服務預設開啟,可透過 Logger.disableUploadLog() 關閉。如無特別原因,請保持開啟日誌上傳,以便我們協助您定位線上問題。
InteractionsLaunchSDK.Logger.setLogLevel(InteractionsLaunchSDK.Logger.LogLevel.TRACE);
- 使用
setChatInfo()方法傳入 polyv 聊天室實例物件和資料。
互動功能發起端 SDK 內部依賴於 polyv 聊天室服務。您可以基於 polyv 聊天室 SDK 快速接入該服務。PolyvChatRoom 是聊天室 SDK 提供的全域物件,更多使用細節請查看這份文件。
setChatInfo() 方法支援多次呼叫。例如,在聊天室重連後需要重新設定 chat 和 socketId 屬性。
// 初始化聊天室 SDK
var chatroom = new PolyvChatRoom({
version: '2.0', // 注意这里要使用 '2.0'
roomId: '', // 房间号
userId: '', // 用户在聊天室的 uid
pic: '', // 用户头像
nick: '', // 用户昵称
userType: '', // 用户类型:'teacher' 老师 / 'assistant' 助教 / 'manager' 管理员
token: '', // 校验码
// 其它具体参数信息请参考 polyv 聊天室 SDK
});
// 在 connect 事件回调中拿到聊天室实例和 socketId 后再传入到互动 SDK 中
chatroom.chat.on('connect', () => {
const socket = chatroom.chat.socket;
// 设置聊天室实例对象和数据
InteractionsLaunchSDK.setChatInfo({
// 聊天室实例对象。
chat: socket,
// 连接聊天室的 socketId
socketId: socket.id,
// 用户在聊天室的 uid
userId: '',
});
});
使用
setChannelInfo()方法初始化頻道資訊。該方法支援多次呼叫。注意:當
sessionId發生變化時(一般是直播狀態發生改變時發生),必須呼叫該介面更新配置。例如,setChannelInfo({ sessionId: 'new sessionId' })。此外,在切換房間時,也可以呼叫該介面更新
channelId和roomId。InteractionsLaunchSDK.setChannelInfo({ channelId: '', roomId: '', // 频道类型。默认为 'normal'。 channelType: '', // 直播场次 id sessionId: '', });設定授權。SDK 內部請求頻道 API 介面時需要使用到存取令牌等資訊。
setAuthorization() 接受一個非同步函數作為參數,該非同步函數需要回傳一個包含 appId、timestamp、channelToken、channelId 四個屬性的物件。
appId 是帳號 AppId;timestamp 是 13 位時間戳;channelId 是頻道號;channelToken 的取得請參考取得頻道API的存取令牌。
取得授權流程介紹:

InteractionsLaunchSDK.setAuthorization(async () => {
// 此处异步获取频道API的访问令牌,并返回互动 SDK 中实现授权所需的参数。
return {
appId: '',
timestamp: '',
channelId: '',
channelToken: '',
};
});
(可選)如果有域名客製化的需求,可設定自訂域名。
InteractionsLaunchSDK.setCustomDomain({ // 可选。聊天室接口域名。默认为 'apichat.polyv.net' chat: '', // 可选。直播业务域名。默认为 'api.polyv.net' api: '', });按需要實例化各互動功能類別。
// 以签到功能为例 // 1. 实例化 CheckIn 类 const checkInCore = new InteractionsLaunchSDK.CheckIn(); // 2. 注册事件监听函数 checkInCore.on('show-result', handler1);
API 文件
點擊此處可查看 API 文件。
功能實踐
此處僅提供各功能參考文件連結。
- AnswerCard 答題卡:參考文件
- CheckIn 簽到:參考文件
- Timer 計時器:參考文件
- LotteryNew 抽獎:參考文件
- Notice 公告:參考文件
- Questionnaire 問卷:參考文件
- RunAnswer 搶答:參考文件
版本更新
暫無
