1.24.2 • Published 5 years ago
@efox/chatroom v1.24.2
聊天室封装简易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[] | 用户列表 |