保利威文档中心

幫助中心

chat_js_sdk_api

更新時間:2024-12-30 09:14:23

建立實例

var chatroom = new PolyvChatRoom({
    roomId: '268682',
    ...
});

相關參數說明

參數名 必填 類型 說明
roomId true string 頻道號
userId true string 使用者唯一 ID,生成建議
pic true string 使用者頭像,須以 'http' 或 'https' 開頭的絕對位址
nick false string 使用者暱稱,預設為 '遊客'
actor false string 使用者頭銜,預設為 '學生'
userType false string 使用者類型,預設為 student,三分屏場景下學員需設定為 slice
一般學員:student
雲課堂學員:slice
講師:teacher
管理員:manager
助教:assistant
嘉賓:guest
accountId false string 直播帳號 userId,用於開啟全域嚴禁詞和圖片表情訊息功能
token true string 校驗碼
mediaChannelKey true string 連麥相關參數
version false string 版本號,預設為 2.0
roomMessage false function 聊天室訊息回呼函式
enableReplay false boolean 開啟內容回覆,預設為 false
enableRedpack false boolean 是否顯示紅包訊息
handlerEvent false function 點擊紅包訊息的回呼,(type, data)
type: '', 紅包事件類型,可選:clickRedpacket
data: '' 當前點擊的紅包資料
customRedpackLabel false object 紅包文案設定
{
passwordTitle: '輸入口令,領取紅包(custom)',
noReceive: '領取紅包(custom)',
normalType: '普通紅包(custom)',
passwordType: '口令紅包(custom)',
rainType: '紅包雨(custom)',
}
customRedpackImg false object 紅包圖片設定
{
normalEntranceImg: '', 普通紅包封面圖片
passwordEntranceImg: '', 口令紅包封面圖片
rainEntranceImg: '', 紅包雨封面圖片
}
container false string DOM 選擇器,HTML 元素,用於嵌入預設聊天室樣式
isMobile false boolean 是否使用行動端樣式,預設值根據當前 UA 判斷是否為行動端

注意:以下參數只有在傳遞了 container 參數時才會生效。

參數名 必選 類型 說明
width false number container寬度,預設300px
height false number container高度,預設600px
showUserList false boolean 是否顯示線上列表。PC端預設開啟,行動端預設關閉。關閉時,若tabData含有線上列表物件也不顯示
enableSetNickname false boolean 是否開啟設定暱稱功能,預設為false
enableWelcome false boolean 是否開啟歡迎語,預設為true
enableFlower false boolean 是否開啟送花功能,預設為true
enableLike false boolean 是否開啟按讚,預設為true
enableOnlyTeacher false boolean 是否開啟只看講師功能,預設為true
enableBulletin false boolean 是否開啟公告,預設為true
enableAsk false boolean 是否開啟提問,預設為true
tabData false array 自訂選單欄
customChatColor false object 自訂訊息顏色
apiPrefix false object 自訂網域名稱
enableRewardAnimation false boolean 是否開啟打賞動畫效果,預設為true
enableUpdatePageviews false boolean 是否開啟熱度更新,預設為true
getChatRecordBySessionIdOptions false object 根據傳入的sessionId取得聊天記錄說明
getChatRecordByTimeOptions false object 根據傳入的時間取得聊天記錄說明
showOwnInfo false boolean 是否顯示自己的聊天訊息的大頭貼、頭銜、暱稱,預設為false
enableViewBigPicture false boolean 是否支援查看大圖,預設為false
customViewPicture false function 自訂查看大圖方法,需開啟enableViewBigPicture
customMessageRender false object 自訂訊息渲染函式物件說明
enableBadWordsTip false boolean 是否開啟違禁詞提示,預設false
enableCustomMessage false boolean 是否顯示http介面發送的自訂訊息,預設false
enableFontSize false boolean 是否開啟字型設定功能,預設false,可設定三種字型大小,sm:12px, md:14px,lg:16px
enableReplay false boolean 是否開啟引用回覆,預設false
newMsgTipText false string 新訊息提示自訂中文文案
newMsgTipTextEn false string 新訊息提示自訂英文文案
lang false string 中英文,可選'zh_CN'|'en',預設'zh_CN'
param4 false string POLYV系統參數
param5 false string POLYV系統參數

userId 生成建議

userId 是聊天室中的使用者唯一識別碼,兩個相同的 userId 登入聊天室後,後者會將前者踢出聊天室,因此不同聊天室使用者的 userId 需要具有唯一性,生成建議如下:

  1. 如果您有使用者系統,請使用使用者系統中的使用者 ID 作為登入聊天室的 userId
  2. 如果您沒有使用者系統,請在後端生成高度隨機的值作為登入聊天室的 userId,例如:「時間戳 +5 位隨機數」、uuid 等,並將該 userId 儲存到 cookie 或本地儲存(localStorage 或 sessionStorage)中,避免每次重新整理頁面後重新生成 userId

自訂選單列

tabData:物件陣列,每個物件包含兩個屬性 name 與 type,預設包含聊天分頁。

name: 選單欄名稱

type:選單欄類型,若非已有內建類型,會嵌入一個不包含任何內容的 div 元素到頁面中。

已有內建類型

type 說明
chat 互動聊天
user-list 線上列表
ask 提問

自訂訊息顏色

說明:修改訊息字體/背景顏色,可針對自己/一般使用者/管理員/講師/助教/嘉賓進行修改

參數名 必選 類型 說明
selfBgColor false string 自己訊息背景顏色,預設為 #8bc34a
selfColor false string 自己訊息顏色,預設為 #fff
otherBgColor false string 一般使用者訊息背景顏色,預設為 #fff
otherColor false string 一般使用者訊息顏色,預設為 #546e7a
specialBgColor false string 特殊使用者訊息背景顏色,可統一設定管理員/講師/助教/嘉賓的背景顏色,預設為 #fff
specialColor false string 特殊使用者訊息顏色,可統一設定管理員/講師/助教/嘉賓的訊息顏色,預設為 #2196f3
managerBgColor false string 管理員訊息背景顏色
managerColor false string 管理員訊息顏色
teacherBgColor false string 講師訊息背景顏色
teacherColor false string 講師訊息顏色
assistantBgColor false string 助教訊息背景顏色
assistantColor false string 助教訊息顏色
guestBgColor false string 嘉賓訊息背景顏色
guestColor false string 嘉賓訊息顏色

自訂網域

參數名 必選 類型 說明
socketHost false string 聊天室網域名稱,預設為 chat.polyv.net
chatApi false string 聊天室介面網域名稱,預設為 apichat.polyv.net

getChatRecordBySessionIdOptions 物件說明

屬性名 必填 類型 說明
enable false boolean 是否開啟根據 sessionId 取得聊天記錄並顯示,預設為 false
sessionId - string 場次 ID,當 enable 為 true 時,必填
connect false boolean 是否連接聊天室,預設為 false,此時提問等需要聊天室的功能也無法使用
page false string 目前頁碼,預設為 1
size false string 每頁顯示的資料筆數,預設每頁顯示 10 筆資料

getChatRecordByTimeOptions 物件說明

屬性名 必填 類型 說明
enable false boolean 是否開啟根據傳入的起始時間取得聊天記錄並顯示,預設為 false
startTime - number 13 位時間戳。開始時間,當 enable 為 true 時,必填
endTime - number 13 位時間戳。結束時間,當 enable 為 true 時,必填
connect false boolean 是否連接聊天室,預設為 false,此時提問等需要聊天室的功能也無法使用
page false string 目前頁碼,預設為 1
size false string 每頁顯示的資料筆數,預設每頁顯示 10 筆資料

customMessageRender 物件說明

格式:{[type]: function(data){/** 将要渲染的内容返回给sdk内部进行渲染 */}}
type 為渲染的訊息類型,取值有:'custom'|'flowers'|'other'|'own'|'redpack'|'redpackResult'|'reward'|'system'
data 為訊息資料

屬性名稱 說明
custom 自訂訊息
flowers 送花訊息
other 他人的訊息
own 自己的訊息
redpack 紅包訊息
redpackResult 紅包領取訊息
reward 打賞訊息
system 系統訊息

範例

...
customMessageRender: {
    custom: function(data) {
        return '<div>' + data + '</div>';
    }
}
...

實例方法

發送引用回覆訊息:reply(id, content)

說明:回覆某一則訊息

範例

// chatroom为此sdk实例对象
chatroom.reply('msg_id', '回复内容');

參數

id: String類型,要回覆的訊息 id contentString類型,回覆的內容

回傳值

回傳一個 Promise 物件

踢出某人:kickUser(userId, sign)

說明:將某個人踢出聊天室

範例

chatroom.kickUser('userId', sign);

參數

userId: String類型,要踢出的使用者的userId signString類型, 簽名(規則

回傳值

回傳一個Promise物件

取消踢出某人:unKickUser(userId, sign)

說明:取消踢出某人

範例

chatroom.unKickUser('userId', sign);

參數

userId: String類型,要取消踢出的使用者的userId signString類型, 簽名(規則

回傳值

回傳一個Promise物件

其他

取得 chat 物件

var chat = chatroom.chat;

取得 socket 物件

var socket = chat.socket;

發送聊天訊息

// 发送文本消息
chat.send('hello');

// 回复消息
chat.send(
  '回复的消息内容',
  {
    id: '被回复的消息 id',
    content: '被回复的消息内容',
    nick: '被回复的发言者昵称'
  },
);

// 发言成功后回调
chat.send('hellow', null, (id) => {
  console.log('发送成功,消息 id:', id);
});

取得聊天歷史記錄

根據訊息索引位置等選項取得聊天歷史記錄

chat.getChatHistory({
  start: 0,
  end: 10,
})
.then(function (data) {
    // TODO:
    console.log(data);
});

參數說明

參數名 必填 可選值 說明
start false - 起始索引,預設為 0
end false - 結束索引,預設為 10
getSpecialMessage false 0/1 是否僅取得特殊身份訊息,傳入 1 表示僅取得特殊身份訊息,預設為 0
// 原有获取历史消息记录接口已废弃
chat.getHistoryMessage(start, end)
.then(function (data) {
    // TODO:
    console.log(data);
});

根據場次ID(sessionId)取得聊天歷史記錄

chat.getHistoryMessageBySessionId({ sessionId, page , size })
.then(function(data) {
    // TODO:
    console.log(data);
});

根據起始時間取得聊天歷史記錄

chat.getHistoryMessageByTime({ startTime, endTime, page , size })
.then(function(data) {
    // TODO:
    console.log(data);
});

參數說明

參數名 必選 說明
start false 開始索引,預設為0
end false 結束索引,預設為10

結果說明

data 為一個物件陣列,具體內容如下

參數名 類型 說明
content string 發言訊息文字內容
id string 該筆記錄ID
time number 發言時間戳,13位毫秒時間戳
user object 發言人

使用者說明

參數名 必填 類型 說明
nick true string 暱稱
pic true string 頭像
userId true string 唯一識別碼
clientIp true string IP 位址
banned true boolean 是否被禁言
userType true string 類型
userSource false string 來源
actor false string 頭銜
roomId true string 房間號碼
channelId true string 頻道號碼
uid true string socket 連線唯一 id

注意:

1、clientIp 預設為空,暫不支援回傳內容值;

2、userType 包含的值可能有:空值/student/slice/teacher/manager/assistant/guest/viewer 等;

獲取在線列表

chat.getUserList(page, len)
.then(function (data) {
    // TODO
    console.log(data);
});

參數說明

參數名 必選 說明
page false 頁碼,預設為1
len false 筆數,預設為100

結果說明

data 為一個物件,具體內容如下

參數名 類型 說明
count number 線上人數
userlist array 線上學員物件陣列

userlist 說明

userlist 物件陣列元素的具體說明請參考「取得聊天歷史記錄」方法中的 user 說明。

獲取觀眾的提問歷史記錄

chatroom.chatApi.getAskHistoryByUserId()
.then(function (data) {
  // TODO
  console.log(data);
});

參數說明

  • 傳入參數可以是物件,也可以不傳,預設會取得初始化 SDK 時的傳入參數
  • 作為物件傳入參數時,可包含以下欄位
參數名 必選 說明
roomId false 房間號
userId false 觀眾 id
token false 聊天室 token
page false 頁碼,大於等於 1
size false 每頁長度,大於等於 1,小於等於 100

結果說明

data 為一個物件,具體內容如下

參數名 類型 說明
page number 頁碼
size number 每頁記錄數
totalPage number 總頁數
totalCount number 總記錄數
list array 提問列表

list 說明

參數名 類型 說明
content string 訊息內容
id string 訊息 id
time number 訊息時間
user object 請參考「取得聊天歷史記錄」方法 user 說明

sendMessage

說明:自己發言後會觸發此訊息,會在 roomMessage 返回,也可以透過 chat 物件監聽 例如:

    chat.on(chat.events.SEND_MESSAGE, (event, data) => {
        // TODO
    });

返回資料:

    EVENT: "sendMessage"
    content: "自己发言"
    currentUser: true
    custom: false
    formatTime: "2019-04-25 18:06"
    imgchat: false
    mySelfSend: true
    reward: false
    time: 1556186781080
    user: {
        nick: "polyv",
        pic: "http://livestatic.videocc.net/assets/wimages/missing_face.png",
        userId: "1530756023116",
        roomId: "",
        channelId: ""
    }

互動功能 Socket 訊息說明

登入訊息

LOGIN:

登录消息,登录房间的时候服务器会广播这一消息

監聽回呼返回的資料:

{
    "EVENT":"LOGIN",
    "onlineUserNumber":3,
    "user": {
        "clientIp":"59.42.43.28",
        "nick":"广州观众/32199",
        "pic":"//livestatic.videocc.net/v_60/assets/wimages/missing_face.png",
        "roomId":"100781",
        "uid":"CxJj8Ap3C9jN1UHKAJ_V",    
        "userId":"1499917692338" 
        "userType": "" 
    }
}

說明

參數名 類型 說明
onlineUserNumber number 當前房間線上總人數
clientIp string 使用者IP
nick string 使用者暱稱
pic string 使用者頭像
roomId string 房間號
uid string socket分配的ID
userId string 使用者唯一識別碼
userType string 使用者類型。目前有:
'teacher' 老師
'assistant' 助教
'manager' 管理員
'slice' 雲課堂學員

登出訊息

LOGOUT

说明:登出消息,有人离开房间(包括刷新页面)时服务器会广播这一消息

監聽回調返回資料:

EVENT: "LOGOUT",
onlineUserNumber: 3,
uid: "I_o3f4sHDzAHM4LVAJTX"
參數名 類型 說明
onlineUserNumber number 當前房間線上總人數
uid string 離開者的 socket.id

接收他人發言訊息

SPEAK:

说明:发言,接收别人的发言消息(不包括自己)

發送:

socket.emit('message', JSON.stringify({
    EVENT: 'SPEAK',
    values: [value],                //发言内容
    roomId: roomId                //当前房间号
}));

欄位說明:

名稱 必須 類型 說明
EVENT string 事件名稱
values array 發言內容,提交的發言是陣列的第一個元素
roomId string 對應的頻道號

監聽回呼返回的資料:

{
    "EVENT": "SPEAK",
    "id": "f1e4a960-6abc-11e7-ac0a-379e251bb30e",
    "time": 1500274540278,
    "user": {
        "clientIp": "59.42.40.89",
        "nick": "rururu",
        "pic":"//livestatic.videocc.net/v_60/assets/wimages/missing_face.png",
        "roomId": "100781",
        "uid": "yP-HnXTEZyToxP0TAGCS",
        "userId": "1500274526077",
        "userType": "" 
    },
    "values": ["sadasd"]
}
參數名 說明
id 訊息唯一標誌
time 時間戳記
user 發言人
values 訊息內容

系統公告

GONGGAO:

说明:当管理员发言时,服务器会将管理员的消息做为公告处理,当重新进入页面时,如有公告,服务器会广播这一消息。

監聽回呼返回的資料:

{
    "EVENT": "GONGGAO",
    "content": "POLYV保利威视" 
}
參數名 說明
content 公告內容

一般公告

BULLETIN

说明:后台设置的公告消息,当重新进入页面时,如有公告,服务器会广播这一消息。

監聽回呼返回的資料:

EVENT: "BULLETIN",
content: "???/",
roomId: "105240"
參數名 類型 說明
content string 公告內容
roomId number/string 當前房間號(重新進入房間收到此訊息時不會帶有 roomId)

送花訊息

FLOWERS:

说明:送花

監聽回調返回的數據

{
    "EVENT":"FLOWERS",
    "nick":"广州观众/81366",
    "uimg":"//livestatic.videocc.net/v_60/assets/wimages/missing_face.png" 
}
名稱 說明
nick 送花人暱稱
uimg 送花人頭像(新增)

按讚訊息

LIKES:

说明: 点赞

監聽回調返回的資料:

{
    "EVENT":"LIKES",
    "count":160,
    "nick":"广州观众/81366" 
}
參數名 說明
count 當前按讚總數,若發送訊息時未傳遞此屬性,則不回傳此屬性
nick 按讚人暱稱

禁言

SHIELD:

说明: 禁言

監聽回調返回的數據:

注意:userId 或 ip 只會回傳其中一個。

{
    EVENT: 'ADD_SHIELD',
    value:  '', // 被禁言用户userId值或ip值
    data: {
        banType: 'userId/ip', // 禁言类型 userId/ip
        userId: '', // 被禁言用户userId值
        ip:'', // 被禁言用户ip值
    }
}

解除禁言

REMOVE_SHIELD:

说明: 解除禁言

監聽回調返回的數據:

解除userId
{
    EVENT: 'REMOVE_SHIELD',
    value: '', // 被禁言用户userId值
    data: {
        banType: 'userId', // 禁言类型
        userId: '' // 被禁言用户userId值
    }
}
解除ip
{
    EVENT: 'REMOVE_SHIELD',
    value: '',// 被禁言用户ip值
    data: {
        banType 'ip', // 禁言类型
        ip: '' // 被禁言用户ip值
    }
}

踢人

KICK:

说明: 踢人

監聽回呼返回的資料:

{
    "EVENT":"KICK",
    "user": {
        "clientIp":"59.42.40.89",
        "nick":"林林林",
        "pic":"//livestatic.videocc.net/v_60/assets/wimages/missing_face.png",
        "roomId":"100781",
        "uid":"118GWVRA24PR14coA3bz",
        "userId":"1500275476199",
        "userType":"" 
    }
}
參數名 說明
user 被踢使用者物件

解除踢人

UNKICK:

说明: 解除踢人

監聽回調返回的數據:

解除userId
{
    "EVENT":"UNKICK",
    "kickType": "userId"
    "userId": "1500275476199" //踢出值
}
解除ip
{
    "EVENT":"UNKICK",
    "kickType": "ip"
    "ip": "127.0.0.1" //踢出值
}
參數名 說明
kickType 踢出方式
ip 踢出IP
userId 踢出userId

刪除某條聊天記錄

REMOVE_CONTENT:

说明:删除某条聊天记录,需要通过HTTP接口调用

監聽回調返回的數據:

{
    "EVENT":"REMOVE_CONTENT",
    "content":"asd",
    "id":"54b04e90-6acd-11e7-abcd-a985dda00975",
    "roomId":"100781" 
}
參數名 說明
content 刪除的內容
id 刪除內容對應的 ID
roomId 房間號

清空聊天記錄

REMOVE_HISTORY:

说明:清空聊天记录

監聽回調返回的數據:

{
    "EVENT":"REMOVE_HISTORY" 
}

關閉聊天室

CLOSEROOM:

说明:关闭聊天室

監聽回調返回的資料:

{
    "EVENT":"CLOSEROOM",
    "value": {
      "closed":true,    
      "roomId":"100781" 
    }
}
參數名 說明
closed true 為關閉,false 為開啟
roomId 房間號

關閉彈幕

CLOSE_DANMU:

说明:关闭弹幕

監聽回調返回的數據:

{
    "EVENT": "CLOSE_DANMU",
    "isClose": true
}
參數名 說明
isClose true 為關閉,false 為開啟

介面發送自訂訊息

說明:透過 API 介面 發送自訂訊息

自訂訊息接收事件

CUSTOMER_MESSAGE:

說明:自訂訊息接收事件

監聽回呼返回的資料:

{
    "EVENT" : "CUSTOMER_MESSAGE",
    "id":"30764b70-33cb-11ed-b2d4-85c1d25442a0",
    "roomId" : 100781,
    "image":"http://livestatic.videocc.net/assets/wimages/pc_images/logo.png",
    "content" : "这是一条自定义消息" ,
    "user" : {}
}
參數名 說明
roomId 房間號
image 訊息圖片(根據發送的訊息是否有圖片決定)
content 訊息內容

答題卡

說明:答題卡包含「快速問答」和「答題卡」兩個功能

GET_TEST_QUESTION_CONTENT

說明:獲取答題卡題目和選項內容

好的,請提供您需要翻譯的簡體中文 Markdown 內容。

參數名 類型 說明
questionId string 問題ID
itemType string 答題類型,1表示快速問答,0表示答題卡
type string 題目類型,(快速問答無此類型題目)
R表示單選
C表示多選
S表示評分
answer string 題目答案,多個答案則直接拼接,如選A和B,則返回AB
option1 string 選擇項1,選項最少2個,最多5個。註:當使用「匯入題庫」匯入題目時,會多出5個選項(option6~option10),值皆為null
option2 string 選擇項2
option3 string 選擇項3
option4 string 選擇項4
option5 string 選擇項5
title string 題目標題
hash string 校驗碼
ts string 時間戳
tips1 string 提示語1,提示語只有在題目類型為評分時才有
tips2 string 提示語2
tips3 string 提示語3
tips4 string 提示語4
tips5 string 提示語5

GET_TEST_QUESTION_RESULT

說明:獲取答題卡答題結果

好的,請提供您要翻譯的簡體中文 Markdown 內容。

參數名 類型 說明
questionId string 問題ID
result object 答題結果
content object 題目詳情

答題結果屬性說明:

參數名 類型 說明
singleResult array 各個選項被選次數
total number 回答總人數
answer string 答案
rightUser array 答對學員
faultUser array 答錯學員
itemType string 答題類型,1表示快速問答,0表示答題卡
type string 題目類型,(快速問答無此類型題目)
R表示單選
C表示多選
S表示評分

ANSWER_TEST_QUESTION

說明:傳送答案

好的,请提供您需要翻译的简体中文 Markdown 内容。

socket.emit('message', JSON.stringify({
    EVENT: 'ANSWER_TEST_QUESTION',
    roomId: channelId,
    nick: nick,
    userId: userId,
    option: result,
    questionId: questionId
}));

欄位說明:

參數名 必填 類型 說明
EVENT string 事件名稱
roomId string 房間號
nick string 暱稱
userId string 學生ID
option string 選擇的答案,多選時直接將多個答案拼接。例如,選A和B,則option為AB
questionId string 問題ID

諮詢提問

S_QUESTION

說明:學生提問內容

好的,請提供您要翻譯的簡體中文 Markdown 內容。

{
    EVENT: 'S_QUESTION',
    roomId: roomId,
    user: {
        nick: nick,
        pic: pic,
        userId: userId,
        userType: 'student'
    },
    content: value
}

欄位說明:

參數名 說明
EVENT 事件名稱
roomId 房間號碼
user 使用者資訊
content 提問內容

使用者資訊說明

參數名 說明
nick 暱稱
pic 頭像
userId 學員ID
userType 類型

T_ANSWER

說明:老師/管理員/助教回覆提問

好的,請提供您要翻譯的簡體中文 Markdown 內容。

{
    EVENT: 'T_ANSWER',
    roomId: roomId,
    user: {
        nick: nick,
        pic: pic,
        userId: userId,
        userType: 'teacher',
        actor: actor
    },
    s_userId: s_userId
    content: value
}

欄位說明:

參數名 說明
EVENT 事件名稱
roomId 房間號碼
user 使用者資訊
s_userId 被回覆學員的ID
content 回覆內容

使用者資訊說明

參數名 說明
nick 暱稱
pic 頭像
userId 講師/助教/管理員ID
userType 類型:teacher/assistant/manager
actor 頭銜

問卷

START_QUESTIONNAIRE

說明:開始問卷調查

好的,請提供您要翻譯的簡體中文 Markdown 內容。

參數名稱 類型 說明
questionnaireId string 問卷ID
content object 問卷內容

問卷內容說明:

參數名稱 類型 說明
questionnaireId string 問卷ID
questionnaireTitle string 問卷標題
createdTime number 問卷建立時間,13位毫秒級時間戳
status string 問卷狀態,saved:已儲存,published:已發布,forbidden:禁止
questions array 問題資訊,為一個物件陣列

問題資訊說明:

參數名稱 類型 說明
questionId string 題目ID
name string 題目標題
type string 題目類型,R:單選,C:多選,Q:問答,X 評星題(五星),S:評分題(10分),J:判斷題
answer string 題目答案
required string 是否必填,Y:是,N:否
scoreEnabled string 是否為得分題,Y:是,N:否
score number 分數
option1 string 題目選項
option2 string 題目選項
option3 string 題目選項
option4 string 題目選項
option5 string 題目選項
option6 string 題目選項
option7 string 題目選項
option8 string 題目選項
option9 string 題目選項
option10 string 題目選項

ANSWER_QUESTIONNAIRE

說明:學生提交問卷答案

好的,请提供您需要翻译的简体中文 Markdown 内容。

socket.emit('message', JSON.stringify({
    EVENT: 'ANSWER_QUESTIONNAIRE',
    roomId: roomId,
    nick: nick,
    userId: userId,
    questionnaireId: questionnaireId,
    answer: [
        {
            questionId: 'f8bbo3rhrq',
            answer: 'A'
        },
        {
            questionId: 'f8bbo3rhlw',
            answer: "BC"
        },
        {
            questionId: 'f8bbo3rhht',
            answer: 'polyv'
        }
    ]
}));

欄位說明:

參數名 必選 類型 說明
EVENT true string 事件名稱
roomId true string 房間ID
nick true string 學生暱稱
userId true string 學生對應的userId
questionId true string 題目ID
answer true array 學生的答案,為一個物件陣列

答案欄位說明:

參數名 類型 說明
questionId string 題目ID
answer string 答案,若為選擇題,則為ABCD;若為問答題,則為學生填寫輸入框的內容

補充:更多題目類型-答案格式請參考

STOP_QUESTIONNAIRE

說明:老師停止問卷

好的,請提供您要翻譯的簡體中文 Markdown 內容。

參數名稱 類型 說明
questionnaireId string 問卷ID

QUESTIONNAIRE_ACHIEVEMENT

說明:講師點擊發送問卷結果按鈕,如果學員有回答問卷,則該學員在觀看端會收到問卷排名結果事件。

好的,請提供您要翻譯的簡體中文 Markdown 內容。

名稱 類型 說明
EVENT string 值為QUESTIONNAIRE_ACHIEVEMENT
roomId string 房間號
totalScore number 該學員回答該問卷的總分數
userId string 該學員的userId
timestamp number 該學員提交問卷答案時的時間戳
questionnaireId string 問卷id
ranking number 該學員在本次問卷中分數的排名,從1開始計

自訂訊息

說明:客戶可以根據自己的業務需求,自行定義想要廣播的消息。

好的,请提供您需要翻译的简体中文 Markdown 内容。

socket.emit('customMessage', JSON.stringify({
    EVENT: 'myMessage',
    version: '1.0',
    emitMode: 1,
    roomId: roomId,
    data: {
        company: 'polyv'
    },
    tip: '我的自定义消息',
}));

欄位說明:

參數名 必填 類型 說明
EVENT true string 自訂訊息類型,事件字元長度不大於20
version true number 自訂訊息版本
emitMode false number 是否廣播給自己,0:表示廣播所有人包含自己,1:表示廣播給所有人除了自己,2:表示只發送給自己
roomId true number 對應的頻道號
data true object 自訂訊息內容,由客戶定義
tip true string 提示語

好的,請提供您要翻譯的簡體中文 Markdown 內容。

參數名 類型 說明
EVENT string 自訂訊息類型,事件字元長度不大於20
version number 自訂訊息版本
emitMode number 是否廣播給自己,0:表示廣播所有人包括自己,1:表示廣播給所有人除了自己,2:表示只發送給自己
roomId number 對應的頻道號
id string 訊息ID
user object 使用者資訊
time number 時間戳
data object 自訂訊息內容,由客戶定義
tip string 提示語

簽到

SIGN_IN

說明:發起簽到

好的,請提供您要翻譯的簡體中文 Markdown 內容。

參數名 類型 說明
EVENT string 值為 SIGN_IN
roomId string 頻道號
data object 包含四個屬性:message:簽到文案;limitTime:簽到時間(單位秒);sessionId:直播場次ID;checkinId:簽到場次ID

STOP_SIGN_IN

說明:結束簽到

好的,請提供您要翻譯的簡體中文 Markdown 內容。

參數名 類型 說明
EVENT string 值為STOP_SIGN_IN
roomId string 頻道號

TO_SIGN_IN

說明:學員簽到

好的,請提供您要翻譯的簡體中文 Markdown 內容。

名稱 類型 說明
EVENT string 值為 TO_SIGN_IN
roomId string 頻道號
checkinId string 簽到場次 ID
user object 簽到學員資訊,包含兩個屬性:nick:學員暱稱,userId:學員 ID

抽獎

說明:抽獎是透過 HTTP 介面發起的,以下訊息是伺服器廣播給頁面的

LotteryStart

說明:開始抽獎

好的,請提供您要翻譯的簡體中文 Markdown 內容。

參數名 類型 說明
EVENT string 值為LotteryStart
channelId string 頻道號
sessionId string 當前直播場次ID
lotteryId string 當前抽獎場次id

LotteryEnd

說明:結束抽獎

好的,請提供您要翻譯的簡體中文 Markdown 內容。

參數名 型別 說明
EVENT string 值為 LotteryEnd
channelId string 頻道號
sessionId string 當前直播場次 ID
lotteryId string 當前抽獎場次 ID
prize string 禮物名稱
data array 中獎人員,包含中獎人員基本資訊以及中獎碼 winnerCode。若未中獎則為空陣列

範例:

{
    "EVENT":"LotteryEnd",
    "channelId":"",
    "sessionId":"fajrsh0uqj",
    "lotteryId":"fapcpw06l2",
    "prize":"耳机",
    "data":[
        {
            "banned":false,
            "channelId":"",
            "clientIp":"",
            "nick":"广州观众/97375",
            "pic":"//livestatic.videocc.net/v_268/assets/wimages/missing_face.png",
            "roomId":"",
            "uid":"lbcCDoikWTniMk1pAMkI",
            "userId":"1553597220784",
            "userType":"student",
            "winnerCode":"xXYMNZJR"
        }
    ]
}
其他

提交中獎者資訊需要呼叫 HTTP 介面,詳見抽獎-提交中獎者資訊

贊助

註:打賞需透過 HTTP 介面觸發,詳見打賞-發送打賞訊息

REWARD

說明:贊助

好的,請提供您要翻譯的簡體中文 Markdown 內容。

參數名 類型 說明
EVENT string 值為REWARD
roomId string 房間號
content object 打賞內容

打賞內容說明:

參數名 類型 說明
unick string 打賞者暱稱
uimg string 打賞者頭像
rewardContent string 打賞內容:禮物打賞為禮物名稱,現金打賞為金額
gimg string 禮物打賞為禮物圖片,現金打賞為空

簽名生成規則

md5(key+roomId) key 的取值請諮詢客服

联系客服,在线咨询