聊天室属性管理(KV)
聊天室属性(KV)管理接口用于在指定聊天室中设置自定义属性。
在语音直播聊天室场景中,可利用此功能记录聊天室中各麦位的属性;或在狼人杀等卡牌类游戏场景中记录用户的角色和牌局状态等。
功能局限
提示
- 聊天室销毁后,聊天室中的自定义属性同时销毁。
- 每个聊天室中,最多允许设置 100 个属性信息,以
Key-Value的方式进行存储。 - 客户端 SDK 未针对聊天室属性 KV 的操作频率进行限制。建议每个聊天室,每秒钟操作
Key-Value频率保持在 100 次及以下(一秒内单次操作 100 个 KV 等同于操作 100 次)。
开通服务
使用聊天室属性(KV)接口需要使用聊天室属性自定义设置功能(该功能已默认开通)。
如果配置了服务端回调 URL,融云服务端会将应用下的聊天室属性变化(设置,删除,全部删除等操作)同步到指定的回调地址。详见服务端文档聊天室属性同步(KV)。
设置聊天室 KV 监听器
调用 addEventListener 方法,设置聊天室 KV 监听器。
提示
- 事件监听器应全局注册,且仅注册一次,避免重复接收事件通知。
- 事件回调数据类型为 IChatroomListenerData
示例代码
JavaScript
const listener = (event) => {
if (event.rejoinedRoom) {
console.log('SDK 内部重连聊天室信息:', event.rejoinedRoom)
}
if (event.updatedEntries) {
console.log('监听到的聊天室 KV 更新:', event.updatedEntries)
}
if (event.userChange) {
console.log('加入退出的用户通知:', event.userChange)
}
if (event.chatroomDestroyed) {
console.log('聊天室销毁:', event.chatroomDestroyed)
}
}
RongIMLib.addEventListener(Events.CHATROOM, listener)
获取单个属性
调用 getChatRoomEntry 方法,获取单个属性。
接口
JavaScript
RongIMLib.getChatRoomEntry(chatRoomId, key)
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| chatRoomId | string | 是 | 聊天室 ID |
| key | string | 是 | 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符 |
示例代码
JavaScript
const chatRoomId = "聊天室 ID";
const key = "name";
RongIMLib.getChatRoomEntry(chatRoomId, key).then(res => {
// 获取聊天室单个属性成功
if (res.code === 0) {
console.log(res.code, res.data)
} else {
console.log(res.code, res.msg)
}
}).catch(error => {
console.log(error)
})
获取所有属性
调用 getAllChatRoomEntries 方法,获取所有属性。
接口
JavaScript
RongIMLib.getAllChatRoomEntries(chatRoomId)