更新时间: 2021-03-08

可在指定聊天室中设置自定义属性,用于语音直播聊天室场景的会场属性同步或狼人杀等卡牌类游戏场景中记录用户的角色和牌局状态等。

  1. 每个聊天室中,最多允许设置 100 个属性信息,以 Key-Value 的方式进行存储。
  2. 每个聊天室中,每秒钟最多允许操作 Key-Value 100 次。
  3. 聊天室销毁后,聊天室中的自定义属性同时销毁。
  4. 使用此功能需要在开发者后台免费基础功能中开通 聊天室属性自定义设置 (opens new window)功能。

# 设置属性

# 参数说明
参数 类型 必填 说明
chatRoomId String 聊天室 ID
key String 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符
value String 聊天室属性对应的值,最大长度 4096 个字符
sendNotification boolean true 发送通知; false 不发送. 如果发送通知,SDK 会接收到 RC:chrmKVNotiMsg 通知消息 ChatRoomKVNotiMessage,并且消息内容中包含 K,V
autoDelete boolean 退出后是否删除
notificationExtra String 通知的自定义字段,RC:chrmKVNotiMsg(ChatRoomKVNotiMessage), 通知消息中会包含此字段,最大长度 2 kb
callback OperationCallback 回调接口
# 示例代码
String chatRoomId = "聊天室 ID";
String key = "name";
String value = "融融";
boolean sendNotification = true;
boolean isAutoDel = false;
String notificationExtra = "通知消息扩展";

RongIMClient.getInstance().setChatRoomEntry(chatRoomId, key, value, sendNotification, isAutoDel, notificationExtra, new RongIMClient.OperationCallback() {

    /**
     * 成功回调
     */
    @Override
    public void onSuccess() {
        
    }

    /**
     * 失败回调
     * @param errorCode 错误码
     */
    @Override
    public void onError(RongIMClient.ErrorCode errorCode) {
        
    }
});

已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 强制设置属性

强制设置聊天室属性. 以 key = value 的形式存储. 当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值. 使用强制设置可修改他人创建的属性值.

# 参数说明
参数 类型 必填 说明
chatRoomId String 聊天室 ID
key String 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符
value String 聊天室属性对应的值,最大长度 4096 个字符
sendNotification boolean true 发送通知; false 不发送. 如果发送通知,SDK 会接收到 RC:chrmKVNotiMsg 通知消息 ChatRoomKVNotiMessage,并且消息内容中包含 K,V
autoDelete boolean 退出后是否删除
notificationExtra String 通知的自定义字段,RC:chrmKVNotiMsg 通知消息中会包含此字段,最大长度 2 kb
callback OperationCallback 回调接口
# 示例代码
String chatRoomId = "聊天室 ID";
String key = "name";
String value = "融融";
boolean sendNotification = true;
boolean isAutoDel = false;
String notificationExtra = "通知消息扩展";

RongIMClient.getInstance().forceSetChatRoomEntry(chatRoomId, key, value, sendNotification, isAutoDel, notificationExtra, new RongIMClient.OperationCallback() {
    /**
     * 成功回调
     */
    @Override
    public void onSuccess() {
        
    }

    /**
     * 失败回调
     * @param errorCode 错误码
     */
    @Override
    public void onError(RongIMClient.ErrorCode errorCode) {
        
    }
});
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 批量设置属性

批量设置聊天室属性

# 参数说明

输入参数说明

参数 类型 必填 说明
chatRoomId String 聊天室 ID
chatRoomEntryMap Map chatRoomEntryMap集合size最大限制为10,超过限制返回错误码KV_STORE_OUT_OF_LIMIT (23429)}
isForce boolean 是否强制覆盖
isAutoDel boolean 用户掉线或退出时,是否自动删除该 Key、Value 值
callback SetChatRoomKVCallback 回调接口

SetChatRoomKVCallback回调参数说明

onError

回调参数 回调类型 说明
errorCode CoreErrorCode 错误码
map Map 当 errorCode 为 KV_STORE_NOT_ALL_SUCCESS(23428)时,map 才会有值(key 为设置失败的 key,value 为该 key 对应的错误码)
# 示例代码

RongChatRoomClient.getInstance().setChatRoomEntries(chatRoomId, chatRoomEntryMap, isAutoDel, isForce, new IRongCoreCallback.SetChatRoomKVCallback() {
    /**
     * 成功回调
     */
    @Override
    public void onSuccess() {
        
    }

    /**
     * 失败回调
     * @param errorCode 
     * @param map
     */
    @Override
    public void onError(IRongCoreEnum.CoreErrorCode errorCode, Map<String, IRongCoreEnum.CoreErrorCode> map) {

    }
});

已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

文档是否解决您的问题 ?

如果遇到产品相关问题,您可 提交工单 寻求帮助