聊天室封装简易sdk
创建实例(createChatroom)
import createChatroom from '@efox/chatroom'
const chatromm = await createChatroom(options)
请求参数:Object
Name | Type | Description |
---|---|---|
hummer? | Hummer | 原始hummer(没传会自动创建) |
otp | string | 用户token(没传原始hummer时,必须传) |
appid? | string | 应用appid(没传原始hummer时,必须传) |
region? | string | 用户区域(没传原始hummer时,必须传) |
roomid? | string | 房间id(没传会自动创建) |
extListenEvents? | array | 补充监听事件列表 |
响应数据:Object
Name | Type | Description |
---|---|---|
chatromm | Object | 房间实例 |
实例属性(attributes)
const {roomid, root, hummer} = chatromm
Name | Type | Description |
---|---|---|
roomid | string | 房间id |
hummer | object | 原始hummer |
root | object | 原始hummer创建的原始chatroom实例 |
发送消息(send)
chatromm.send({
event: '',
data: {
content: ''
}
})
请求参数:Object
Name | Type | Description |
---|---|---|
event | string | 发送事件类型 |
data | Object | 发送数据 |
响应数据:Object
Name | Type | Description |
---|---|---|
rescode | number | 0:表示成功 |
msg | string | 返回描述 |
发送消息事件类型
sendGroupMessage发送群组消息
请求参数:
Name | Type | Description |
---|---|---|
content | string | 内容 |
kvExtra | {[k: string]: string} | 扩展字段key-value |
响应数据:
Name | Type | Description |
---|---|---|
rescode | number | 0:表示成功 |
msg | string | 返回描述 |
示例:
const await res = chatromm.send({
event: 'sendGroupMessage',
data: {
content,
kvExtra
}
})
sendSingleUserMessage发送单播消息
请求参数:
Name | Type | Description |
---|---|---|
content | string | 内容 |
receiver | string | 接收者uid |
kvExtra | {[k: string]: string} | 扩展字段key-value |
响应数据:
Name | Type | Description |
---|---|---|
rescode | number | 0:表示成功 |
msg | string | 返回描述 |
示例:
const await res = chatromm.send({
event: 'sendSingleUserMessage',
data: {
content, receiver, kvExtra
}
})
sendTextChat发送公屏
请求参数:
Name | Type | Description |
---|---|---|
chat | string | 内容 |
extra | string | |
kvExtra | {[k: string]: string} |
响应数据:
Name | Type | Description |
---|---|---|
rescode | number | 0:表示成功 |
msg | string | 返回描述 |
【注】 (1)新业务接入,扩展字段值请使用kvExtra,不要使用extra; (2)如果是需要与移动端sdk进行互通的老业务,需要使用extra的情形,请与移动端SDK进行互通联调;
示例:
const await res = chatromm.send({
event: 'sendTextChat',
data: {
chat, extra, kvExtra
}
})
订阅所有事件(subscribe)
const unsubscribe = chatromm.subscribe(({name, res}) => {
console.log({
name, res
})
})
// 如果要取消该订阅
unsubscribe()
请求参数:Function 可以订阅多次,最多限制20次,每次的传入函数,会有以下对象数据:
Name | Type | Description |
---|---|---|
name | string | 事件类型 |
res | Object | 返回数据 |
响应数据:Function
执行返回函数,可以取消该订阅
订阅后可以获取到的事件消息
接受事件类型,请参考以下文档中的接受消息部分中的事件名和返回数据
例如接收公屏消息(TextChat)
const unsubscribe = chatromm.subscribe(({name, res}) => {
if (name === 'TextChat') {
const {extra, uid, kvExtra} = res
console.log(res)
}
})
订阅所有消息(subscribeMsgs)
只订阅单播、群组、公屏三种消息事件
const unsubscribe = chatromm.subscribeMsgs(({name, res}) => {
//
})
// 如果要取消该订阅
unsubscribe()
请求参数:Function
Name | Type | Description |
---|---|---|
name | string | 事件类型 |
res | Object | 返回数据 |
响应数据:Function 执行返回函数,可以取消该订阅
获取用户列表(getUsers)
请求参数:object
Name | Type | Description |
---|---|---|
num? | number | 数量(默认10) |
pos? | number | 起始点(默认0) |
响应数据:string[]
Name | Type | Description |
---|---|---|
uids | string[] | 用户列表 |