更新时间: 2020-08-27
可在指定聊天室中设置自定义属性,用于语音直播聊天室场景的会场属性同步或狼人杀等卡牌类游戏场景中记录用户的角色和牌局状态等。
- 每个聊天室中,最多允许设置 100 个属性信息,以
Key-Value
的方式进行存储。 - 每个聊天室中,每秒钟最多允许操作
Key-Value
100 次。 - 聊天室销毁后,聊天室中的自定义属性同时销毁。
- 使用此功能需要在开发者后台免费基础功能中开通 聊天室属性自定义设置 (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
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
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
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
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
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
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
2
3
4
5
6
7