Class RongChatRoomClientImpl

  • All Implemented Interfaces:

    
    public class RongChatRoomClientImpl
    extends RongChatRoomClient
                        

    /~chinese 设置聊天室成员加入、退出监听.

    开发者可以通过设置监听,获取加入、退出当前聊天室的成员信息回调.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      static void addChatRoomAdvanceActionListenerForInterior(RongChatRoomClient.ChatRoomAdvancedActionListener listener)
      static void removeChatRoomAdvanceActionListenerForInterior(RongChatRoomClient.ChatRoomAdvancedActionListener listener)
      static void addChatRoomNotifyEventListenerForInterior(RongChatRoomClient.ChatRoomNotifyEventListener listener)
      static List<RongChatRoomClient.ChatRoomNotifyEventListener> getAllChatRoomNotifyEventListenerForInterior()
      static void removeChatRoomNotifyEventListenerForInterior(RongChatRoomClient.ChatRoomNotifyEventListener listener)
      void setCheckChatRoomDuplicateMessage(boolean enableCheck) 设置是否检查聊天室重复消息的方法。 <p><strong>功能说明:</strong>启用或禁用检查聊天室中重复消息的功能。 <p>可以通过实现此方法来控制聊天室中是否需要对重复消息进行检查,以防止相同消息的重复显示或处理。
      void joinChatRoom(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)
      void joinChatRoom(String chatRoomId, int defMessageCount, String extra, IRongCoreCallback.OperationCallback callback) 加入聊天室。 如果聊天室不存在,SDK 会创建聊天室并加入,如果已存在,则直接加入。 可以通过传入的 defMessageCount 设置加入聊天室成功之后需要获取的历史消息数量。 -1 表示不获取任何历史消息,0 表示不特殊设置而使用 sdk 默认的设置(默认为获取 10 条),defMessageCount0 < defMessageCount <= 50 为获取的消息数量,最大值为 50。
      void joinExistChatRoom(String chatRoomId, int defMessageCount, IRongCoreCallback.ResultCallback<JoinChatRoomResponse> callback) 加入已存在的聊天室。 客户需要通过 Server API 创建聊天室后才能调用此接口加入聊天室。如果聊天室不存在,则加入失败。加入聊天室时,可以设置拉取聊天室消息数目。
      void joinExistChatRoom(String chatRoomId, int defMessageCount, IRongCoreCallback.OperationCallback callback) 加入已存在的聊天室。 客户需要通过 Server API 创建聊天室后才能调用此接口加入聊天室。如果聊天室不存在,则加入失败。加入聊天室时,可以设置拉取聊天室消息数目。
      void joinExistChatRoom(String chatRoomId, int defMessageCount, String extra, IRongCoreCallback.ResultCallback<JoinChatRoomResponse> callback) 加入已存在的聊天室。 接口内部检查 SDK 连接状态。 客户需要通过 Server API 创建聊天室后才能调用此接口加入聊天室。如果聊天室不存在,则加入失败。加入聊天室时,可以设置拉取聊天室消息数目。
      void bindChatRoomWithRTCRoom(String chatRoomId, String RTCRoomId, IRongCoreCallback.OperationCallback callback) 绑定chatRoom和RTCRoom,当在RTCRoom开启时如需调用ChatRoom调用此方法。 * 背景问题 客户使用 聊天室 和 RTC 背景问题: 房间直播,长时间只有音视频流,但是聊天室没有加减成员或者收发消息,那么就会出现聊天室被销毁(kv就全部没了)但是 RTC 房间还在
      void quitChatRoom(String chatRoomId, IRongCoreCallback.OperationCallback callback) 退出聊天室。
      void forceRemoveChatRoomEntry(String chatRoomId, String key, boolean sendNotification, String notificationExtra, IRongCoreCallback.OperationCallback callback) 强制删除聊天室自定义属性。 注意:必须先开通聊天室状态存储功能。
      void forceSetChatRoomEntry(String chatRoomId, String key, String value, boolean sendNotification, boolean autoDelete, String notificationExtra, IRongCoreCallback.OperationCallback callback) 强制设置聊天室自定义属性。 key 不存在,增加属性; key 已存在,更新属性的值。注意:必须先开通聊天室状态存储功能。
      void setChatRoomEntry(String chatRoomId, String key, String value, boolean sendNotification, boolean autoDelete, String notificationExtra, IRongCoreCallback.OperationCallback callback) 设置聊天室自定义属性。 key 不存在,增加属性; key 已存在,只能更新当前用户设置的属性值。注意:必须先开通聊天室状态存储功能。
      void setChatRoomEntries(String chatRoomId, Map<String, String> chatRoomEntryMap, boolean autoDelete, boolean overWrite, IRongCoreCallback.SetChatRoomKVCallback callback) 批量设置聊天室自定义属性
      void deleteChatRoomEntries(String roomId, List<String> chatRoomEntryList, boolean force, IRongCoreCallback.SetChatRoomKVCallback callback) 批量删除聊天室自定义属性
      void getChatRoomEntry(String chatRoomId, String key, IRongCoreCallback.ResultCallback<Map<String, String>> callback) 获取聊天室单个属性。 注意:必须先开通聊天室状态存储功能。
      void getAllChatRoomEntries(String chatRoomId, IRongCoreCallback.ResultCallback<Map<String, String>> callback) 获取聊天室所有属性。 注意:必须先开通聊天室状态存储功能。
      void removeChatRoomEntry(String chatRoomId, String key, boolean sendNotification, String notificationExtra, IRongCoreCallback.OperationCallback callback) 删除聊天室自定义属性。 注意: 1.
      void getChatRoomInfo(String chatRoomId, int defMemberCount, ChatRoomInfo.ChatRoomMemberOrder order, IRongCoreCallback.ResultCallback<ChatRoomInfo> callback) 获取聊天室的信息(包含部分成员信息和当前聊天室中的成员总数)。 注意: 因为聊天室一般成员数量巨大,权衡效率和用户体验,目前返回的聊天室信息仅包含不多于 20 人的成员信息和当前成员总数。 如果您使用 RC_ChatRoom_Member_Asc 升序方式查询,将返回最早加入的成员信息列表; 如果您使用 RC_ChatRoom_Member_Desc 降序方式查询,将返回最晚加入的成员信息列表。 上述两种方式查询,返回的成员列表都是按加入时间从旧到新。
      void getChatroomHistoryMessages(String targetId, long recordTime, int count, IRongCoreEnum.TimestampOrder order, IRongCoreCallback.IChatRoomHistoryMessageCallback callback) 获取聊天室历史消息。 从服务器端获取聊天室之前的历史消息,如果指定时间 0,则从存储的第一条消息开始拉取。注意:必须先开通聊天室消息云存储功能。
      void setKVStatusListener(RongChatRoomClient.KVStatusListener listener) 设置聊天室 KV 状态变化的监听
      boolean addKVStatusListener(RongChatRoomClient.KVStatusListener listener) 添加聊天室 KV 状态变化的监听
      boolean removeKVStatusListener(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
    • Constructor Detail

    • Method Detail

      • 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 - 状态回调。
      • joinChatRoom

        @Deprecated() void joinChatRoom(String chatRoomId, int defMessageCount, String extra, IRongCoreCallback.OperationCallback callback)

        加入聊天室。

        如果聊天室不存在,SDK 会创建聊天室并加入,如果已存在,则直接加入。 可以通过传入的 defMessageCount 设置加入聊天室成功之后需要获取的历史消息数量。 -1 表示不获取任何历史消息,0 表示不特殊设置而使用 sdk 默认的设置(默认为获取 10 条),defMessageCount0 < 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 - 聊天室 id
        key - 聊天室属性键值
        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 - 聊天室 id
        key - 聊天室属性名称, 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 - 聊天室 id
        key - 聊天室属性名称,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 - 聊天室ID
        chatRoomEntryMap - 聊天室属性 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 - 聊天室ID
        chatRoomEntryList - 聊天室属性 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 - 聊天室 id
        key - 聊天室属性键值
        callback - 结果回调监听
      • getAllChatRoomEntries

         void getAllChatRoomEntries(String chatRoomId, IRongCoreCallback.ResultCallback<Map<String, String>> callback)

        获取聊天室所有属性。

        注意:必须先开通聊天室状态存储功能。

        Parameters:
        chatRoomId - 聊天室 id
        callback - 结果回调监听
      • removeChatRoomEntry

         void removeChatRoomEntry(String chatRoomId, String key, boolean sendNotification, String notificationExtra, IRongCoreCallback.OperationCallback callback)

        删除聊天室自定义属性。

        注意: 1. 必须先开通聊天室状态存储功能 2. 只有自己设置的属性可以删除

        Parameters:
        chatRoomId - 聊天室 id
        key - 聊天室属性键值
        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 - 聊天室历史消息回调