Chat Js Sdk Api

创建实列

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,默认包含聊天tab

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

发言人

user说明

参数名必选类型说明

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说明

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

说明:获取答题卡题目和选项内容

响应:

参数名类型说明

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

说明:获取答题卡答题结果

响应:

参数名类型说明

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

说明:发送答案

请求:

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

字段说明:

参数名必选类型说明

EVENT

true

string

事件名

roomId

true

string

房间号

nick

true

string

昵称

userId

true

string

学生ID

option

true

string

选择的答案,多选时直接将多个答案拼接。如,选A和B,则option为AB

questionId

true

string

问题ID

咨询提问

S_QUESTION

说明:学生提问内容

响应:

{
    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

说明:老师/管理员/助教回复提问

响应:

{
    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

说明:开始问卷调查

响应:

参数名类型说明

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

说明:学生提交问卷答案

请求:

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

说明:老师停止问卷

响应:

参数名类型说明

questionnaireId

string

问卷ID

QUESTIONNAIRE_ACHIEVEMENT

说明:讲师点击发送问卷结果按钮,如果学员有回答问卷,则该学员在观看端会收到问卷排名结果事件。

响应:

名称类型说明

EVENT

string

值为QUESTIONNAIRE_ACHIEVEMENT

roomId

string

房间号

totalScore

number

该学员回答该问卷的总分数

userId

string

该学员的userId

timestamp

number

该学员提交问卷答案时的时间戳

questionnaireId

string

问卷id

ranking

number

该学员在本次问卷中分数的排名,从1开始计

自定义消息

说明:客户可以根据自己的业务需求,自己定义想要的消息去广播。

请求

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

提示语

响应:

参数名类型说明

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

说明:发起签到

响应:

参数名类型说明

EVENT

string

值为SIGN_IN

roomId

string

频道号

data

object

包含四个属性:message:签到文案;limitTime:签到时间(单位秒);sessionId:直播场次ID;checkinId:签到场次ID

STOP_SIGN_IN

说明:结束签到

响应:

参数名类型说明

EVENT

string

值为STOP_SIGN_IN

roomId

string

频道号

TO_SIGN_IN

说明:学员签到

响应:

名称类型说明

EVENT

string

值为TO_SIGN_IN

roomId

string

频道号

checkinId

string

签到场次ID

user

object

签到学员信息,包含两个属性:nick:学员昵称,userId:学员ID

抽奖

说明:抽奖是通过http接口发起的,以下消息是服务器广播给页面的

LotteryStart

说明:开始抽奖

响应:

参数名类型说明

EVENT

string

值为LotteryStart

channelId

string

频道号

sessionId

string

当前直播场次ID

lotteryId

string

当前抽奖场次id

LotteryEnd

说明:结束抽奖

响应:

参数名类型说明

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

说明:打赏

响应:

参数名类型说明

EVENT

string

值为REWARD

roomId

string

房间号

content

object

打赏内容

打赏内容说明:

参数名类型说明

unick

string

打赏者昵称

uimg

string

打赏者头像

rewardContent

string

打赏内容:礼物打赏为礼物名称,现金打赏为金额

gimg

string

礼物打赏为礼物图片,现金打赏为空

签名生成规则

md5(key+roomId) key的取值请咨询客服

Last updated