Class RongChatRoomClientImpl
-
- All Implemented Interfaces:
public class RongChatRoomClientImpl extends RongChatRoomClient
/~chinese 设置聊天室成员加入、退出监听.
开发者可以通过设置监听,获取加入、退出当前聊天室的成员信息回调.
-
-
Method Summary
Modifier and Type Method Description static voidaddChatRoomAdvanceActionListenerForInterior(RongChatRoomClient.ChatRoomAdvancedActionListener listener)static voidremoveChatRoomAdvanceActionListenerForInterior(RongChatRoomClient.ChatRoomAdvancedActionListener listener)static voidaddChatRoomNotifyEventListenerForInterior(RongChatRoomClient.ChatRoomNotifyEventListener listener)static List<RongChatRoomClient.ChatRoomNotifyEventListener>getAllChatRoomNotifyEventListenerForInterior()static voidremoveChatRoomNotifyEventListenerForInterior(RongChatRoomClient.ChatRoomNotifyEventListener listener)voidsetCheckChatRoomDuplicateMessage(boolean enableCheck)设置是否检查聊天室重复消息的方法。 <p><strong>功能说明:</strong>启用或禁用检查聊天室中重复消息的功能。 <p>可以通过实现此方法来控制聊天室中是否需要对重复消息进行检查,以防止相同消息的重复显示或处理。 voidjoinChatRoom(String chatRoomId, int defMessageCount, IRongCoreCallback.OperationCallback callback)加入聊天室。 如果聊天室不存在,SDK 会创建聊天室并加入,如果已存在,则直接加入。 可以通过传入的 defMessageCount 设置加入聊天室成功之后需要获取的历史消息数量。 -1 表示不获取任何历史消息,0 表示不特殊设置而使用 sdk 默认的设置(默认为获取 10 条),defMessageCount 0 < defMessageCount <= 50为获取的消息数量,最大值为 50。Array<ChatroomKVChangeInfo>retainMatchingStatus(Array<ChatroomKVChangeInfo> statusArray, Map<String, String> filterMap)voidjoinChatRoom(String chatRoomId, int defMessageCount, String extra, IRongCoreCallback.OperationCallback callback)加入聊天室。 如果聊天室不存在,SDK 会创建聊天室并加入,如果已存在,则直接加入。 可以通过传入的 defMessageCount 设置加入聊天室成功之后需要获取的历史消息数量。 -1 表示不获取任何历史消息,0 表示不特殊设置而使用 sdk 默认的设置(默认为获取 10 条),defMessageCount 0 < defMessageCount <= 50为获取的消息数量,最大值为 50。voidjoinExistChatRoom(String chatRoomId, int defMessageCount, IRongCoreCallback.ResultCallback<JoinChatRoomResponse> callback)加入已存在的聊天室。 客户需要通过 Server API 创建聊天室后才能调用此接口加入聊天室。如果聊天室不存在,则加入失败。加入聊天室时,可以设置拉取聊天室消息数目。 voidjoinExistChatRoom(String chatRoomId, int defMessageCount, IRongCoreCallback.OperationCallback callback)加入已存在的聊天室。 客户需要通过 Server API 创建聊天室后才能调用此接口加入聊天室。如果聊天室不存在,则加入失败。加入聊天室时,可以设置拉取聊天室消息数目。 voidjoinExistChatRoom(String chatRoomId, int defMessageCount, String extra, IRongCoreCallback.ResultCallback<JoinChatRoomResponse> callback)加入已存在的聊天室。 接口内部检查 SDK 连接状态。 客户需要通过 Server API 创建聊天室后才能调用此接口加入聊天室。如果聊天室不存在,则加入失败。加入聊天室时,可以设置拉取聊天室消息数目。 voidbindChatRoomWithRTCRoom(String chatRoomId, String RTCRoomId, IRongCoreCallback.OperationCallback callback)绑定chatRoom和RTCRoom,当在RTCRoom开启时如需调用ChatRoom调用此方法。 * 背景问题 客户使用 聊天室 和 RTC 背景问题: 房间直播,长时间只有音视频流,但是聊天室没有加减成员或者收发消息,那么就会出现聊天室被销毁(kv就全部没了)但是 RTC 房间还在 voidquitChatRoom(String chatRoomId, IRongCoreCallback.OperationCallback callback)退出聊天室。 voidforceRemoveChatRoomEntry(String chatRoomId, String key, boolean sendNotification, String notificationExtra, IRongCoreCallback.OperationCallback callback)强制删除聊天室自定义属性。 注意:必须先开通聊天室状态存储功能。 voidforceSetChatRoomEntry(String chatRoomId, String key, String value, boolean sendNotification, boolean autoDelete, String notificationExtra, IRongCoreCallback.OperationCallback callback)强制设置聊天室自定义属性。 key 不存在,增加属性; key 已存在,更新属性的值。注意:必须先开通聊天室状态存储功能。 voidsetChatRoomEntry(String chatRoomId, String key, String value, boolean sendNotification, boolean autoDelete, String notificationExtra, IRongCoreCallback.OperationCallback callback)设置聊天室自定义属性。 key 不存在,增加属性; key 已存在,只能更新当前用户设置的属性值。注意:必须先开通聊天室状态存储功能。 voidsetChatRoomEntries(String chatRoomId, Map<String, String> chatRoomEntryMap, boolean autoDelete, boolean overWrite, IRongCoreCallback.SetChatRoomKVCallback callback)批量设置聊天室自定义属性 voiddeleteChatRoomEntries(String roomId, List<String> chatRoomEntryList, boolean force, IRongCoreCallback.SetChatRoomKVCallback callback)批量删除聊天室自定义属性 voidgetChatRoomEntry(String chatRoomId, String key, IRongCoreCallback.ResultCallback<Map<String, String>> callback)获取聊天室单个属性。 注意:必须先开通聊天室状态存储功能。 voidgetAllChatRoomEntries(String chatRoomId, IRongCoreCallback.ResultCallback<Map<String, String>> callback)获取聊天室所有属性。 注意:必须先开通聊天室状态存储功能。 voidremoveChatRoomEntry(String chatRoomId, String key, boolean sendNotification, String notificationExtra, IRongCoreCallback.OperationCallback callback)删除聊天室自定义属性。 注意: 1. voidgetChatRoomInfo(String chatRoomId, int defMemberCount, ChatRoomInfo.ChatRoomMemberOrder order, IRongCoreCallback.ResultCallback<ChatRoomInfo> callback)获取聊天室的信息(包含部分成员信息和当前聊天室中的成员总数)。 注意: 因为聊天室一般成员数量巨大,权衡效率和用户体验,目前返回的聊天室信息仅包含不多于 20 人的成员信息和当前成员总数。 如果您使用 RC_ChatRoom_Member_Asc 升序方式查询,将返回最早加入的成员信息列表; 如果您使用 RC_ChatRoom_Member_Desc 降序方式查询,将返回最晚加入的成员信息列表。 上述两种方式查询,返回的成员列表都是按加入时间从旧到新。 voidgetChatroomHistoryMessages(String targetId, long recordTime, int count, IRongCoreEnum.TimestampOrder order, IRongCoreCallback.IChatRoomHistoryMessageCallback callback)获取聊天室历史消息。 从服务器端获取聊天室之前的历史消息,如果指定时间 0,则从存储的第一条消息开始拉取。注意:必须先开通聊天室消息云存储功能。 voidsetKVStatusListener(RongChatRoomClient.KVStatusListener listener)设置聊天室 KV 状态变化的监听 booleanaddKVStatusListener(RongChatRoomClient.KVStatusListener listener)添加聊天室 KV 状态变化的监听 booleanremoveKVStatusListener(RongChatRoomClient.KVStatusListener listener)移除聊天室 KV 状态变化的监听 -
Methods inherited from class io.rong.imlib.chatroom.base.RongChatRoomClient
addChatRoomAdvanceActionListener, addChatRoomNotifyEventListener, chatRoomConfig, getChatRoomMemberListener, getInstance, removeChatRoomAdvanceActionListener, removeChatRoomNotifyEventListener, setChatRoomActionListener, setChatRoomAdvancedActionListener, setChatRoomMemberListener -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Method Detail
-
addChatRoomAdvanceActionListenerForInterior
static void addChatRoomAdvanceActionListenerForInterior(RongChatRoomClient.ChatRoomAdvancedActionListener listener)
-
removeChatRoomAdvanceActionListenerForInterior
static void removeChatRoomAdvanceActionListenerForInterior(RongChatRoomClient.ChatRoomAdvancedActionListener listener)
-
addChatRoomNotifyEventListenerForInterior
static void addChatRoomNotifyEventListenerForInterior(RongChatRoomClient.ChatRoomNotifyEventListener listener)
-
getAllChatRoomNotifyEventListenerForInterior
static List<RongChatRoomClient.ChatRoomNotifyEventListener> getAllChatRoomNotifyEventListenerForInterior()
-
removeChatRoomNotifyEventListenerForInterior
static void removeChatRoomNotifyEventListenerForInterior(RongChatRoomClient.ChatRoomNotifyEventListener listener)
-
setCheckChatRoomDuplicateMessage
void setCheckChatRoomDuplicateMessage(boolean enableCheck)
设置是否检查聊天室重复消息的方法。 <p><strong>功能说明:</strong>启用或禁用检查聊天室中重复消息的功能。 <p>可以通过实现此方法来控制聊天室中是否需要对重复消息进行检查,以防止相同消息的重复显示或处理。
- Parameters:
enableCheck- 默认是true; true表示开启检查聊天室中重复消息的功能,false表示关闭检查聊天室中重复消息的功能。- Since:
5.8.2
-
joinChatRoom
void joinChatRoom(String chatRoomId, int defMessageCount, IRongCoreCallback.OperationCallback callback)
加入聊天室。
如果聊天室不存在,SDK 会创建聊天室并加入,如果已存在,则直接加入。 可以通过传入的 defMessageCount 设置加入聊天室成功之后需要获取的历史消息数量。 -1 表示不获取任何历史消息,0 表示不特殊设置而使用 sdk 默认的设置(默认为获取 10 条),defMessageCount
0 < defMessageCount <= 50为获取的消息数量,最大值为 50。- Parameters:
chatRoomId- 聊天室 id。defMessageCount- 进入聊天室拉取消息数量,-1 时不拉取任何消息,0 时拉取 10 条消息,最多只能拉取 50 条。 (加入聊天室时会传本地最后一条消息的时间戳,拉取的是这个时间戳之后的消息。比如:这个时间戳之后有 3 条消息,defMessageCount传 10,也只能拉取 3 条消息。)callback- 状态回调。
-
retainMatchingStatus
Array<ChatroomKVChangeInfo> retainMatchingStatus(Array<ChatroomKVChangeInfo> statusArray, Map<String, String> filterMap)
-
joinChatRoom
@Deprecated() void joinChatRoom(String chatRoomId, int defMessageCount, String extra, IRongCoreCallback.OperationCallback callback)
加入聊天室。
如果聊天室不存在,SDK 会创建聊天室并加入,如果已存在,则直接加入。 可以通过传入的 defMessageCount 设置加入聊天室成功之后需要获取的历史消息数量。 -1 表示不获取任何历史消息,0 表示不特殊设置而使用 sdk 默认的设置(默认为获取 10 条),defMessageCount
0 < defMessageCount <= 50为获取的消息数量,最大值为 50。- Parameters:
chatRoomId- 聊天室 id,最大 64 个字符。defMessageCount- 进入聊天室拉取消息数量,-1 时不拉取任何消息,0 时拉取 10 条消息,最多只能拉取 50 条。 (加入聊天室时会传本地最后一条消息的时间戳,拉取的是这个时间戳之后的消息。比如:这个时间戳之后有 3 条消息,defMessageCount传 10,也只能拉取 3 条消息。)callback- 状态回调。
-
joinExistChatRoom
void joinExistChatRoom(String chatRoomId, int defMessageCount, IRongCoreCallback.ResultCallback<JoinChatRoomResponse> callback)
加入已存在的聊天室。
客户需要通过 Server API 创建聊天室后才能调用此接口加入聊天室。
如果聊天室不存在,则加入失败。加入聊天室时,可以设置拉取聊天室消息数目。
- Parameters:
chatRoomId- 聊天室 id。defMessageCount- 进入聊天室拉取消息数目,-1 时不拉取任何消息,0 时拉取 10 条消息,最多只能拉取 50 条。callback- 状态回调。 聊天室返回的信息JoinChatRoomResponse- Since:
5.3.1:加入聊天室后,断网重新加入聊天室默认获取聊天室消息条数,为主动加入时获取的历史消息条数。由于每次传入的条数固定, 可能会导致消息重复,App 需要做消息排重。
5.6.3
-
joinExistChatRoom
@Deprecated() void joinExistChatRoom(String chatRoomId, int defMessageCount, IRongCoreCallback.OperationCallback callback)
加入已存在的聊天室。
客户需要通过 Server API 创建聊天室后才能调用此接口加入聊天室。
如果聊天室不存在,则加入失败。加入聊天室时,可以设置拉取聊天室消息数目。
- Parameters:
chatRoomId- 聊天室 id。defMessageCount- 进入聊天室拉取消息数目,-1 时不拉取任何消息,0 时拉取 10 条消息,最多只能拉取 50 条。callback- 状态回调。- Since:
5.3.1:加入聊天室后,断网重新加入聊天室默认获取聊天室消息条数,为主动加入时获取的历史消息条数。由于每次传入的条数固定, 可能会导致消息重复,App 需要做消息排重。
-
joinExistChatRoom
void joinExistChatRoom(String chatRoomId, int defMessageCount, String extra, IRongCoreCallback.ResultCallback<JoinChatRoomResponse> callback)
加入已存在的聊天室。
接口内部检查 SDK 连接状态。
客户需要通过 Server API 创建聊天室后才能调用此接口加入聊天室。
如果聊天室不存在,则加入失败。加入聊天室时,可以设置拉取聊天室消息数目。
- Parameters:
chatRoomId- 聊天室 id。defMessageCount- 进入聊天室拉取消息数目,-1 时不拉取任何消息,0 时拉取 10 条消息,最多只能拉取 50 条。extra- 加入聊天室扩展参数callback- 状态回调。 聊天室返回的信息JoinChatRoomResponse 加入聊天室后,断网重新加入聊天室默认获取聊天室消息条数,为主动加入时获取的历史消息条数。由于每次传入的条数固定, 可能会导致消息重复,App 需要做消息排重。- Since:
5.6.3
-
bindChatRoomWithRTCRoom
void bindChatRoomWithRTCRoom(String chatRoomId, String RTCRoomId, IRongCoreCallback.OperationCallback callback)
绑定chatRoom和RTCRoom,当在RTCRoom开启时如需调用ChatRoom调用此方法。 * 背景问题 客户使用 聊天室 和 RTC 背景问题: 房间直播,长时间只有音视频流,但是聊天室没有加减成员或者收发消息,那么就会出现聊天室被销毁(kv就全部没了)但是 RTC 房间还在
-
quitChatRoom
void quitChatRoom(String chatRoomId, IRongCoreCallback.OperationCallback callback)
退出聊天室。
- Parameters:
chatRoomId- 聊天室 id,最大 64 字符。callback- 状态回调。
-
forceRemoveChatRoomEntry
void forceRemoveChatRoomEntry(String chatRoomId, String key, boolean sendNotification, String notificationExtra, IRongCoreCallback.OperationCallback callback)
强制删除聊天室自定义属性。
注意:必须先开通聊天室状态存储功能。
- Parameters:
chatRoomId- 聊天室 idkey- 聊天室属性键值sendNotification- 是否需要发送通知,如果需要发送通知,SDK 会收到通知消息 ChatRoomKVNotiMessage。notificationExtra- 通知自定义字段,通知消息 ChatRoomKVNotiMessage 中包含此字段,最大长度 2 kb。callback- 结果回调监听
-
forceSetChatRoomEntry
void forceSetChatRoomEntry(String chatRoomId, String key, String value, boolean sendNotification, boolean autoDelete, String notificationExtra, IRongCoreCallback.OperationCallback callback)
强制设置聊天室自定义属性。
key 不存在,增加属性; key 已存在,更新属性的值。注意:必须先开通聊天室状态存储功能。
- Parameters:
chatRoomId- 聊天室 idkey- 聊天室属性名称, Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符。value- 聊天室属性对应的值,最大长度 4096 个字符。sendNotification- 是否需要发送通知,如果需要发送通知,SDK 接收通知消息 ChatRoomKVNotiMessage。autoDelete- 退出后是否删除notificationExtra- 通知自定义字段,通知消息 ChatRoomKVNotiMessage 中会包含此字段,最大长度 2 kb。callback- 设置聊天室属性的回调
-
setChatRoomEntry
void setChatRoomEntry(String chatRoomId, String key, String value, boolean sendNotification, boolean autoDelete, String notificationExtra, IRongCoreCallback.OperationCallback callback)
设置聊天室自定义属性。
key 不存在,增加属性; key 已存在,只能更新当前用户设置的属性值。注意:必须先开通聊天室状态存储功能。
- Parameters:
chatRoomId- 聊天室 idkey- 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符。value- 聊天室属性对应的值,最大长度 4096 个字符。sendNotification- 是否需要发送通知,如果需要发送通知,SDK 接收通知消息ChatRoomKVNotiMessage。autoDelete- 退出后是否删除notificationExtra- 通知的自定义字段,通知消息 ChatRoomKVNotiMessage 中会包含此字段,不可以超过 2048 个字符。callback- 设置聊天室属性的回调
-
setChatRoomEntries
void setChatRoomEntries(String chatRoomId, Map<String, String> chatRoomEntryMap, boolean autoDelete, boolean overWrite, IRongCoreCallback.SetChatRoomKVCallback callback)
批量设置聊天室自定义属性
- Parameters:
chatRoomId- 聊天室IDchatRoomEntryMap- 聊天室属性 1.autoDelete- 用户掉线或退出时,是否自动删除该 Key、Value 值overWrite- 是否强制覆盖callback- 设置聊天室属性的回调 onError 当 CoreErrorCode 为 KV_STORE_NOT_ALL_SUCCESS(23428)的时候, failMap 才会有值(key标识设置失败的 key,value 标识该 key 对应的错误码)
-
deleteChatRoomEntries
void deleteChatRoomEntries(String roomId, List<String> chatRoomEntryList, boolean force, IRongCoreCallback.SetChatRoomKVCallback callback)
批量删除聊天室自定义属性
- Parameters:
roomId- 聊天室IDchatRoomEntryList- 聊天室属性 1.force- 是否强制覆盖callback- 设置聊天室属性的回调 onError 当 CoreErrorCode 为 KV_STORE_NOT_ALL_SUCCESS(23428)的时候, failMap 才会有值(key标识设置失败的 key,value 标识该 key 对应的错误码)
-
getChatRoomEntry
void getChatRoomEntry(String chatRoomId, String key, IRongCoreCallback.ResultCallback<Map<String, String>> callback)
获取聊天室单个属性。
注意:必须先开通聊天室状态存储功能。
- Parameters:
chatRoomId- 聊天室 idkey- 聊天室属性键值callback- 结果回调监听
-
getAllChatRoomEntries
void getAllChatRoomEntries(String chatRoomId, IRongCoreCallback.ResultCallback<Map<String, String>> callback)
获取聊天室所有属性。
注意:必须先开通聊天室状态存储功能。
- Parameters:
chatRoomId- 聊天室 idcallback- 结果回调监听
-
removeChatRoomEntry
void removeChatRoomEntry(String chatRoomId, String key, boolean sendNotification, String notificationExtra, IRongCoreCallback.OperationCallback callback)
删除聊天室自定义属性。
注意: 1. 必须先开通聊天室状态存储功能 2. 只有自己设置的属性可以删除
- Parameters:
chatRoomId- 聊天室 idkey- 聊天室属性键值sendNotification- 是否需要发送通知,如果需要发送通知,SDK 会收到通知消息 ChatRoomKVNotiMessage。notificationExtra- 通知自定义字段,通知消息 ChatRoomKVNotiMessage 中包含此字段,最大长度 2 kb。callback- 结果回调监听
-
getChatRoomInfo
void getChatRoomInfo(String chatRoomId, int defMemberCount, ChatRoomInfo.ChatRoomMemberOrder order, IRongCoreCallback.ResultCallback<ChatRoomInfo> callback)
获取聊天室的信息(包含部分成员信息和当前聊天室中的成员总数)。
注意: 因为聊天室一般成员数量巨大,权衡效率和用户体验,目前返回的聊天室信息仅包含不多于 20 人的成员信息和当前成员总数。 如果您使用 RC_ChatRoom_Member_Asc 升序方式查询,将返回最早加入的成员信息列表; 如果您使用 RC_ChatRoom_Member_Desc 降序方式查询,将返回最晚加入的成员信息列表。 上述两种方式查询,返回的成员列表都是按加入时间从旧到新。
- Parameters:
chatRoomId- 聊天室 id,最大 64 字符。defMemberCount- 需要获取的成员信息的数量(目前获取到的聊天室信息中仅包含不多于 20人 的成员信息,即0 < count <= 20,传入 0 获取到的聊天室信息将或仅包含成员总数,不包含具体的成员列表)。order- 按照何种顺序返回聊天室成员信息。升序返回最早加入的用户列表; 降序返回最晚加入的用户列表。callback- 状态回调。参考 ChatRoomInfo 。
-
getChatroomHistoryMessages
void getChatroomHistoryMessages(String targetId, long recordTime, int count, IRongCoreEnum.TimestampOrder order, IRongCoreCallback.IChatRoomHistoryMessageCallback callback)
获取聊天室历史消息。
从服务器端获取聊天室之前的历史消息,如果指定时间 0,则从存储的第一条消息开始拉取。注意:必须先开通聊天室消息云存储功能。
- Parameters:
targetId- 聊天室的 room id。recordTime- 起始的消息发送时间戳,单位: 毫秒。count- 需要获取的消息数量,0 < count <= 200。order- 拉取顺序: 降序, 按照时间戳从大到小; 升序, 按照时间戳从小到大。 RC_Timestamp_Desc:倒序(降序),表示拉取小(早)于 recordTime 的消息。 RC_Timestamp_Asc:正序(升序),表示拉取大(晚)于 recordTime 的消息。callback- 聊天室历史消息回调
-
setKVStatusListener
@Deprecated() void setKVStatusListener(RongChatRoomClient.KVStatusListener listener)
设置聊天室 KV 状态变化的监听
- Parameters:
listener- 聊天室 KV 状态变化的监听 KVStatusListener @Deprecated 使用
-
addKVStatusListener
boolean addKVStatusListener(RongChatRoomClient.KVStatusListener listener)
添加聊天室 KV 状态变化的监听
- Parameters:
listener- 聊天室 KV 状态变化的监听 KVStatusListener
-
removeKVStatusListener
boolean removeKVStatusListener(RongChatRoomClient.KVStatusListener listener)
移除聊天室 KV 状态变化的监听
- Parameters:
listener- 聊天室 KV 状态变化的监听 KVStatusListener
-
-
-
-