聊天室
更新时间: 2025/04/29 09:37:32
请查阅集成方式来下载并引入 SDK 文件
聊天室功能概述
- 目前不支持通过 SDK 接口建立/解散聊天室。
- 进入聊天室时必须建立新的连接,退出聊天室或者被踢会断开连接,在聊天室中掉线会有自动重连,开发者需要监听聊天室连接状态来做出正确的界面表现。
- 支持聊天人数无上限。
- 聊天室只允许用户手动进入,无法进行邀请。
- 支持同时进入多个聊天室,会建立多个连接。
- 断开聊天室连接后,服务器不会再推送该聊天室的消息给此用户。
- 在进行一切操作之前,必须先进入聊天室。即必须先初始化好聊天室并且收到onconnect回调。
- 用户进入聊天室之后,不会收到此聊天室的历史消息推送。如有历史消息需求,可以调用消息查询接口进行显示。
- 聊天室成员分固定成员和游客两种类型。
获取聊天室服务器地址
初始化 & 连接
初始化聊天室之前,必须拿到聊天室服务器地址
当发生掉线时,SDK会自动进行重连。
匿名登录:
- SDK支持用户以游客身份访问聊天室,即通过配置参数 isAnonymous: true实现
- 第一次使用匿名方式登录聊天室时(新建实例),无需填写account参数,但需要在登录以后从chatroom实例中获取SDK生成的该参数
- 使用匿名方式登录聊天室,必须填写用户昵称(非匿名方式为选填),建议填写头像
- 为防止聊天室不断的被创建新实例,建议用户需要更新聊天室配置时(匿名模式),在update或第二次getInstance时,将前一次获取的account通过参数传入
初始化参数见 type ChatroomInitializeOptions,初始化事件见 ChatroomEventInterface
import ChatroomSDK from './Chatroom_UNIAPP_SDK'
const sdk = new ChatroomSDK({
"appkey": "YOUR_APPKEY",
"token": "YOUR_TOKEN",
"account": "YOUR_ACCOUNT"
"isAnonymous": false,
"chatroomId": "YOUR_CHATROOM_ID",
"chatroomAddresses": [
"YOUR_CHATROOM_ADDR"
]
});
const eventList = [
// 登陆完成事件
'logined', 'willReconnect', 'disconnect',
// 收到多端登陆通知触发事件
'multiPortLogin', 'kicked',
// 聊天室专有
'chatroomMsg'
]
eventList.forEach((key: any) => {
sdk.on(key, (res: any) => {
console.log(`收到 ${key} 事件:`, res);
});
})
await sdk.connect()
/** 匿名方式 */
// ...省略
const sdk = new ChatroomSDK({
"appkey": "YOUR_APPKEY",
"token": "YOUR_TOKEN",
"account": "YOUR_ACCOUNT"
"isAnonymous": true,
"chatroomId": "YOUR_CHATROOM_ID",
"chatroomAddresses": [
"YOUR_CHATROOM_ADDR"
],
chatroomNick: 'YOUR_NICK',
chatroomAvatar: 'YOUR_AVATAR',
});
聊天室事件
参见 interface ChatroomEventInterface
- logined 登录完成
- disconnect 断开连接
- willReconnect 即将开始重连
- multiPortLogin 收到多端登录通知
- kicked 被踢
- chatroomMsg 收到聊天室信息
const sdk = new ChatroomSDK({
//...
})
const eventList = [
'logined', 'willReconnect', 'disconnect',
'multiPortLogin', 'kicked',
'chatroomMsg'
]
eventList.forEach((key: any) => {
sdk.on(key, (res: any) => {
console.log(`收到 ${key} 事件:`, res);
});
})
退出
await sdk.disconnect()
断开聊天室连接后,可以再次调用 sdk.connect() 建立连接
销毁实例
await sdk.destroy()
销毁后,无法再通过 sdk.connect() 建立连接,需要重新建立实例对象。
聊天室信息接口
聊天室消息接口
参见 interface ChatroomMsgServiceInterface
接口挂载在 sdk.chatroomMsg 下
发送消息相关
- sendTextMsg 发送文本消息
- sendGeoLocationMsg 发送地理位置消息
- sendTipMsg 发送提醒消息
- sendCustomMsg 发送自定义消息
- sendImageMsg 发送图片消息
- sendAudioMsg 发送音频消息
- sendVideoMsg 发送视频消息
- sendFileMsg 发送文件消息
查询历史消息 queryMessageHistory
例子
// A 用户发送
await sdk.chatroomMsg.sendTextMsg({
body: 'This is a chatroomMsg'
})
// B 用户处接收
sdk.on('chatroomMsg', function(msg) {
console.log('收到了消息', msg)
})
await sdk.chatroomMsg.queryMessageHistory({
limit: 100
})
聊天室成员接口
参见 interface ChatroomMemberServiceInterface
接口挂载在 sdk.chatroomMember 里
- queryMembers 获取成员列表
- queryMembersByAccounts 获取成员信息
jsawait sdk.chatroomMember.queryMembers({
"type": "regular",
"limit": 100
})
管理聊天室成员
参见 interface ChatroomMemberServiceInterface
接口挂载在 sdk.chatroomMember 里
- setMemberManager 设置管理员
- setMemberBlackList 设置黑名单
- setMemberMute 设置禁言
- setMemberNormal 设置普通成员
- kickMember 踢出成员
js// 添加管理员
await sdk.chatroomMember.setMemberManager({
"account": "TARGET_ACCOUNT",
"isAdd": true
})
// 删除管理员
await sdk.chatroomMember.setMemberManager({
"account": "TARGET_ACCOUNT",
"isAdd": false
})
此文档是否对你有帮助?





