@efox/chatroom
TypeScript icon, indicating that this package has built-in type declarations

1.24.2 • Public • Published

聊天室封装简易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

执行返回函数,可以取消该订阅

订阅后可以获取到的事件消息

接受事件类型,请参考以下文档中的接受消息部分中的事件名和返回数据

https://github.com/cherishman2005/hummer-js-sdk-api/blob/master/hummer3.0/chatroom/chatroom%E5%AF%B9%E5%A4%96%E6%8E%A5%E5%8F%A3.md

例如接收公屏消息(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[] 用户列表

原始sdk链接

https://github.com/cherishman2005/hummer-js-sdk-api/blob/master/hummer3.0/chatroom/chatroom%E5%AF%B9%E5%A4%96%E6%8E%A5%E5%8F%A3.md

Readme

Keywords

none

Package Sidebar

Install

npm i @efox/chatroom

Weekly Downloads

7

Version

1.24.2

License

MIT

Unpacked Size

70.3 kB

Total Files

17

Last publish

Collaborators

  • ron0115
  • hiitiger
  • ckken
  • doerme
  • hupp
  • magic_zhong
  • yz101x
  • wangcylive
  • tim2018
  • linhaoran
  • yangshangzhi
  • lucky-dog
  • wu_wei
  • nijina
  • zhengy1995
  • bennyshi
  • yellowbeee
  • keylenn