聊天室属性管理(KV)
聊天室属性(KV)管理接口用于在指定聊天室中设置自定义属性。
在语音直播聊天室场景中,可利用此功能记录聊天室中各麦位的属性;或在狼人杀等卡牌类游戏场景中记录用户的角色和牌局状态等。
功能局限
提示
- 聊天室销毁后,聊天室中的自定义属性同时销毁。
- 每个聊天室中,最多允许设置 100 个属性信息,以
Key-Value
的方式进行存储。 - 客户端 SDK 未针对聊天室属性 KV 的操作频率进行限制。建议每个聊天室,每秒钟操作
Key-Value
频率保持在 100 次及以下(一秒内单次操作 100 个 KV 等同于操作 100 次)。
开通服务
使用聊天室属性(KV)接口要求开通聊天室属性自定义设置服务。您可以前往控制台的免费基础功能页面开启服务。
如果配置了服务端回调 URL,融云服务端会将应用下的聊天室属性变化(设置,删除,全部删除等操作)同步到指定的回调地址。详见服务端文档聊天室属性同步(KV)。
添加聊天室 KV
方法
addChatRoomEntry(
targetId: string,
key: string,
value: string,
deleteWhenLeft: boolean,
overwrite: boolean,
callback: IRCIMIWAddChatRoomEntryCallback
): Promise<number>;
参数说明
参数名 | 参数类型 | 描述 |
---|---|---|
targetId | string | 聊天室会话 ID |
key | string | 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符 |
value | string | 聊天室属性对应的值,最大长度 4096 个字符 |
deleteWhenLeft | boolean | 用户掉线或退出时,是否自动删除该 Key、Value 值 |
overwrite | boolean | 如果当前 key 存在,是否进行覆盖 |
callback | IRCIMIWAddChatRoomEntryCallback | 接口调用结果回调。 |
返回值
返回值 | 描述 |
---|---|
number | 当次接口操作的状态码。0 代表调用成功 具体结果需要实现接口回调,非 0 代表当前接口调用操作失败,不会触发接口回调,详细错误参考错误码 |
代码示例
const callback = {
onChatRoomEntryAdded: (code: number) => {
//...
},
};
let code = await engine.addChatRoomEntry(targetId, key, value, deleteWhenLeft, overwrite, callback);
添加多个聊天室 KV
方法
addChatRoomEntries(
targetId: string,
entries: Map<string, string>,
deleteWhenLeft: boolean,
overwrite: boolean,
callback: IRCIMIWAddChatRoomEntriesCallback
): Promise<number>;
参数说明
参数名 | 参数类型 | 描述 |
---|---|---|
targetId | string | 聊天室会话 ID |
entries | Map<string, string> | 聊天室属性 |
deleteWhenLeft | boolean | 用户掉线或退出时,是否自动删除该 Key、Value 值 |
overwrite | boolean | 是否强制覆盖 |
callback | IRCIMIWAddChatRoomEntriesCallback | 接口调用结果回调。 |
返回值
返回值 | 描述 |
---|---|
number | 当次接口操作的状态码。0 代表调用成功 具体结果需要实现接口回调,非 0 代表当前接口调用操作失败,不会触发接口回调,详细错误参考错误码 |
代码示例
const callback = {
onChatRoomEntriesAdded: (code: number, errors: Map<string, number>) => {
//...
},
};
let code = await engine.addChatRoomEntries(targetId, entries, deleteWhenLeft, overwrite, callback);