获取历史消息
- 如果您的应 用/环境在 2022.10.13 日及以后开通超级群服务,超级群业务中会包含一个 ID 为
RCDefault
的默认频道。如果发消息时不指定频道 ID,则该消息会发送到RCDefault
频道中。在获取RCDefault
频道的历史消息时,需要传入该频道 ID。- 如果您的应用/环境在 2022.10.13 日前已开通超级群服务,在发送消息时如果不指定频道 ID,则该消息不属于任何频道。获取历史消息时,如果不传入频道 ID,可获取不属于任何频道的消息。融云支持客户调整服务至最新行为。该行为调整将影响客户端、服务端收发消息、获取会话、清除历史消息、禁言等多个功能。如有需要,请提交工单咨询详细方案。
获取本地与远端历史消息
getMessages 方法先从本地获取历史消息,本地有缺失的情况下会从服务端同步缺失的部分。当本地没有更多消息的时候,会从服务端拉取。
interface IGetMessageCallbackEx{
void onComplete(List<Message> messageList, long syncTimestamp, boolean hasMoreMsg, IRongCoreEnum.CoreErrorCode errorCode);
void onFail(IRongCoreEnum.CoreErrorCode errorCode);
}
public void getMessages(final Conversation.ConversationType conversationType, final String targetId, final String channelId, final HistoryMessageOption historyMessageOption, final IRongCoreCallback.IGetMessageCallbackEx callback)
参数 | 类型 | 说明 |
---|---|---|
conversationType | ConversationType | 会话类型 |
targetId | String | 会话 ID |
channel | String | 超级群频道 ID |
historyMsgOption | HistoryMessageOption | 获取历史消息的配置选项。 |
callback | IRongCoreCallback.IGetMessageCallback<List<Message>> | 获取历史消息的回调。 |
-
HistoryMessageOption
说明:参数 说明 dataTime 时间戳,用于控制分页查询消息的边界。默认值为 0
。count 要获取的消息数量。如果 SDK < 5.4.1,范围为 [2-20];如果 SDK ≧ 5.4.1,范围为 [2-100];默认值为 5
。pullOrder 拉取顺序。 DESCEND
:降序,按消息发送时间递减的顺序,获取发送时间早于dataTime
的消息,返回的列表中的消息按发送时间从新到旧排列。ASCEND
: 升序,按消息发送时间递增的顺序,获取发送时间晚于dataTime
的消息,返回的列表中的消息按发送时间从旧到新排列。
从本地数据库中获取消息
使用 getHistoryMessages
方法可分页查询指定会话存储在本地数据库中的历史消息,并返回消息对象列表。列表中的消息按发送时间从新到旧排列。