全部文档

更新时间: 2020-08-27

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

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

实现此功能需要开发者遵守 RCChatRoomKVStatusChangeDelegate 协议

# 参数说明

代理对象参数说明:

参数 类型 必填 说明
delegate id IMLib 消息接收监听器

协议方法参数说明:

参数 类型 说明
roomId NSString 聊天室 ID
entry NSDictionary 修改或者删除的 KV 字典

# 代码示例

// 1. 设置代理对象
[[RCIMClient sharedRCIMClient] setRCChatRoomKVStatusChangeDelegate:self];

- (void)chatRoomKVDidSync:(NSString *)roomId {
}

- (void)chatRoomKVDidUpdate:(NSString *)roomId entry:(NSDictionary<NSString *,NSString *> *)entry {
}

- (void)chatRoomKVDidRemove:(NSString *)roomId entry:(NSDictionary<NSString *,NSString *> *)entry {
}
已复制
1
2
3
4
5
6
7
8
9
10
11

# 设置属性

设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值,且只有 key 的创建者可以更新属性的值。

# 参数说明

输入参数说明

参数 类型 必填 说明
chatroomId NSString 聊天室的 chatroomId
key NSString 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符
value NSString 聊天室属性对应的值,最大长度 4096 个字符
sendNotification BOOL 是否需要发送通知,
autoDelete BOOL 用户掉线或退出时,是否自动删除该 Key、Value 值;自动删除时不会发送通知
notificationExtra NSString 通知的自定义字段,RC:chrmKVNotiMsg 通知消息中会包含此字段,最大长度 2 kb
successBlock Block - 成功的回调
errorBlock Block - 失败的回调

返回参数说明

error 说明:

回调参数 回调类型 说明
status RCErrorCode 获取失败的错误码
# 代码示例
[[RCIMClient sharedRCIMClient] setChatRoomEntry:chatroomId
                                            key:key
                                          value:value
                                sendNotification:isNotice
                                      autoDelete:isDelete
                              notificationExtra:extra
                                        success:^{}
                                          error:^(RCErrorCode nErrorCode) {}];
已复制
1
2
3
4
5
6
7
8

# 强制设置属性

强制设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值。

# 参数说明

输入参数说明

参数 类型 必填 说明
chatroomId NSString 聊天室的 chatroomId
key NSString 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符
value NSString 聊天室属性对应的值,最大长度 4096 个字符
sendNotification BOOL 是否需要发送通知,
autoDelete BOOL 用户掉线或退出时,是否自动删除该 Key、Value 值;自动删除时不会发送通知
notificationExtra NSString 通知的自定义字段,RC:chrmKVNotiMsg 通知消息中会包含此字段,最大长度 2 kb
successBlock Block - 成功的回调
errorBlock Block - 失败的回调

返回参数说明

error 说明:

回调参数 回调类型 说明
status RCErrorCode 获取失败的错误码
# 代码示例
[[RCIMClient sharedRCIMClient] forceSetChatRoomEntry:chatroomId
                                                key:key
                                              value:value
                                  sendNotification:isNotice
                                        autoDelete:isDelete
                                  notificationExtra:extra
                                            success:^{}
                                              error:^(RCErrorCode nErrorCode) {}];
已复制
1
2
3
4
5
6
7
8

# 删除属性

删除聊天室自定义属性,只有自己设置的属性可以被删除。

# 参数说明

输入参数说明

参数 类型 必填 说明
chatroomId NSString 聊天室的 chatroomId
key NSString 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符
sendNotification BOOL 是否需要发送通知
notificationExtra NSString 通知的自定义字段,RC:chrmKVNotiMsg 通知消息中会包含此字段,最大长度 2 kb
successBlock Block - 成功的回调
errorBlock Block - 失败的回调

返回参数说明

error 说明:

回调参数 回调类型 说明
status RCErrorCode 获取失败的错误码
# 代码示例

只有自己设置的属性可以被删除。

[[RCIMClient sharedRCIMClient] removeChatRoomEntry:chatroomId
                                                key:key
                                  sendNotification:isNotice
                                  notificationExtra:extra
                                            success:^{} 
                                              error:^(RCErrorCode nErrorCode) {}];
已复制
1
2
3
4
5
6

# 强制删除属性

强制删除聊天室自定义属性。

# 参数说明

输入参数说明

参数 类型 必填 说明
chatroomId NSString 聊天室的 chatroomId
key NSString 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符
sendNotification BOOL 是否需要发送通知
notificationExtra NSString 通知的自定义字段,RC:chrmKVNotiMsg 通知消息中会包含此字段,最大长度 2 kb
successBlock Block - 成功的回调
errorBlock Block - 失败的回调

返回参数说明

error 说明:

回调参数 回调类型 说明
status RCErrorCode 获取失败的错误码
# 代码示例
[[RCIMClient sharedRCIMClient] forceRemoveChatRoomEntry:chatroomId
                                                    key:key
                                        sendNotification:isNotice
                                      notificationExtra:extra
                                                success:^{}
                                                  error:^(RCErrorCode nErrorCode) {}];
已复制
1
2
3
4
5
6

# 获取单个属性

# 参数说明

输入参数说明

参数 类型 必填 说明
chatroomId NSString 聊天室的 chatroomId
key NSString 聊天室属性名称,
successBlock Block - 成功的回调
errorBlock Block - 失败的回调

返回参数说明

success 说明:

回调参数 回调类型 说明
entry NSDictionary 属性内容

error 说明:

回调参数 回调类型 说明
status RCErrorCode 获取失败的错误码
# 代码示例
[[RCIMClient sharedRCIMClient] getChatRoomEntry:chatroomId
                                            key:key
                                        success:^(NSDictionary *entry) {

                                          }
                                          error:^(RCErrorCode nErrorCode) {
    
}];
已复制
1
2
3
4
5
6
7
8

# 获取所有属性

# 参数说明

输入参数说明

参数 类型 必填 说明
chatroomId NSString 聊天室的 chatroomId
successBlock Block - 成功的回调
errorBlock Block - 失败的回调

返回参数说明

success 说明:

回调参数 回调类型 说明
entry NSDictionary 属性内容

error 说明:

回调参数 回调类型 说明
status RCErrorCode 获取失败的错误码
# 代码示例
[[RCIMClient sharedRCIMClient] getAllChatRoomEntries:self.roomId
                                              success:^(NSDictionary *entry) {
    
                                                }
                                                error:^(RCErrorCode nErrorCode) {
    
}];
已复制
1
2
3
4
5
6
7

文档是否解决您的问题 ?

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