聊天室存储

发布时间: 2019-11-14 15:41

回答:

聊天室存储

SDK 2.10.1 版本新增聊天室存储功能

使用说明:

1: 必须先开通聊天室状态存储功能(请联系商务进行开通服务)

接口说明:

1: 设置聊天室自定义属性
/**
 * 设置聊天室自定义属性
 * <p>必须先开通聊天室状态存储功能
 * 设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值,且只有 key 的创建者可以更新属性的值。</p>
 *
 * @param chatRoomId        聊天室 Id
 * @param key               聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符
 * @param value             聊天室属性对应的值,最大长度 4096 个字符
 * @param sendNotification  是否需要发送通知,如果发送通知,SDK 会接收到 RC:chrmKVNotiMsg 通知消息{@link ChatRoomKVNotiMessage},并且消息内容中包含 K,V
 * @param autoDelete        退出后是否删除
 * @param notificationExtra 通知的自定义字段,RC:chrmKVNotiMsg{@link ChatRoomKVNotiMessage} 通知消息中会包含此字段,最大长度 2 kb
 * @param callback          设置聊天室属性的回调
 */
public void setChatRoomEntry(final String chatRoomId, final String key, final String value, final boolean sendNotification, final boolean autoDelete, final String notificationExtra, final OperationCallback callback)
2: 强制设置聊天室自定义属性
/**
 * 强制设置聊天室自定义属性
 * <p>必须先开通聊天室状态存储功能
 * 强制设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值。</p>
 *
 * @param chatRoomId        聊天室 Id
 * @param key               聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符
 * @param value             聊天室属性对应的值,最大长度 4096 个字符
 * @param sendNotification  是否需要发送通知,如果发送通知,SDK 会接收到RC:chrmKVNotiMsg 通知消息{@link ChatRoomKVNotiMessage},并且消息内容中包含 K,V
 * @param autoDelete        退出后是否删除
 * @param notificationExtra 通知的自定义字段,RC:chrmKVNotiMsg{@link ChatRoomKVNotiMessage} 通知消息中会包含此字段,最大长度 2 kb
 * @param callback          设置聊天室属性的回调
 */
public void forceSetChatRoomEntry(final String chatRoomId, final String key, final String value, final boolean sendNotification, final boolean autoDelete, final String notificationExtra, final OperationCallback callback)
3: 获取聊天室单个属性
/**
 * 获取聊天室单个属性
 * <p>必须先开通聊天室状态存储功能</p>
 *
 * @param chatRoomId 聊天室 Id
 * @param key        聊天室属性对应的值,最大长度 4096 个字符
 * @param callback   结果回调监听
 */
public void getChatRoomEntry(final String chatRoomId, final String key, @NonNull final ResultCallback<Map<String, String>> callback)
4: 获取聊天室所有的属性
/**
 * 获取聊天室所有的属性
 * <p>必须先开通聊天室状态存储功能</p>
 *
 * @param chatRoomId 聊天室 Id
 * @param callback   结果回调监听
 */
public void getAllChatRoomEntries(final String chatRoomId, @NonNull final ResultCallback<Map<String, String>> callback)
5: 获取聊天室所有的属性
/**
 * 获取聊天室所有的属性
 * <p>必须先开通聊天室状态存储功能</p>
 *
 * @param chatRoomId 聊天室 Id
 * @param callback   结果回调监听
 */
public void getAllChatRoomEntries(final String chatRoomId, @NonNull final ResultCallback<Map<String, String>> callback)
6: 删除聊天室自定义属性
/**
 * 删除聊天室自定义属性
 * <p>必须先开通聊天室状态存储功能
 * 删除聊天室自定义属性,只有自己设置的属性可以被删除。</p>
 *
 * @param chatRoomId        聊天室 Id
 * @param key               聊天室属性对应的值,最大长度 4096 个字符
 * @param sendNotification  是否需要发送通知,如果发送通知,SDK 会接收到RC:chrmKVNotiMsg 通知消息{@link ChatRoomKVNotiMessage},并且消息内容中包含 K,V
 * @param notificationExtra 通知的自定义字段,RC:chrmKVNotiMsg{@link ChatRoomKVNotiMessage} 通知消息中会包含此字段,最大长度 2 kb
 * @param callback          结果回调监听
 */
public void removeChatRoomEntry(final String chatRoomId, final String key, final Boolean sendNotification, final String notificationExtra, final OperationCallback callback)
7: 强制删除聊天室自定义属性
/**
 * 强制删除聊天室自定义属性
 * <p>必须先开通聊天室状态存储功能
 * 强制删除聊天室自定义属性</p>
 *
 * @param chatRoomId        聊天室 Id
 * @param key               聊天室属性对应的值,最大长度 4096 个字符
 * @param sendNotification  是否需要发送通知,如果发送通知,SDK 会接收到RC:chrmKVNotiMsg 通知消息{@link ChatRoomKVNotiMessage},并且消息内容中包含 K,V
 * @param notificationExtra 通知的自定义字段,RC:chrmKVNotiMsg{@link ChatRoomKVNotiMessage} 通知消息中会包含此字段,最大长度 2 kb
 * @param callback          结果回调监听
 */
public void forceRemoveChatRoomEntry(final String chatRoomId, final String key, final Boolean sendNotification, final String notificationExtra, final OperationCallback callback)

错误码说明及排查方案:

1: -3 参数异常

异常排查:应检查调用接口的参数是否正确
常见 key 或者 value 或者 roomId 传入了空值或者空的字符串,已经 key 传入了非法字符目前 key 只支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式

2: 23426 聊天室 KV 功能没有开通

异常排查:功能未开通,请联系商务开通功能才可正常使用

3: 34004 聊天室 KV 未同步完成

异常排查:调用获取方法的时候,本地数据跟服务器同步未完成,需等待同步完成才可获取到正确的数据

4: 23423 超聊天室中最大设置 KV 值

异常排查:调用设置 KV 的方法的时候返回,目前支持最多设置 100 个超过最大值会报此错误码

5: 23424 聊天室中非法覆盖 KEY 值

异常排查:调用设置 KV 的方法的时候返回,当前的 key 没有权限覆盖修改新的 value 时返回此错误

6: 23425 超聊天室中 KV 设置频率

异常排查:1秒钟最多对 KV 操作 100 次,包括设置和删除,超过此频率返回此错误码

7: 23427 聊天室 Key 不存在

异常排查:调用当个获取某个 key 的 value 时,value 为空,未设置此 key 返回此错误码