获取历史消息

  • 获取指定类型,targetId 的N条历史消息记录。通过此接口可以根据情况分段加载历史消息,节省网络资源,提高用户体验。

提示

该接口不支持拉取聊天室历史消息。

参数说明 :

参数 说明
conversationType 会话类型
targetId 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。
oldestMessageId 最后一条消息的 Id,获取此消息之前的 count 条消息,没有消息第一次调用应设置为:-1。
count 要获取的消息数量。
callback 获取历史消息记录的回调,按照时间顺序从新到旧排列。

调用示例 :

     RongIMClient.getInstance().getHistoryMessages(conversationType, targetId,oldestMessageId, count, new RongIMClient.ResultCallback<List<Message>>() {
            @Override
            public void onSuccess(final List<Message> messages) {
                            }

            @Override
            public void onError(RongIMClient.ErrorCode e) {
            }
        });
  • 根据会话类型的目标 Id,回调方式获取某些消息类型的某条消息之前或之后的N条历史消息记录。如: 要获取messageId为22的之前的10条图片消息,和文字消息

提示

该接口不支持拉取聊天室历史消息。

参数说明 :

参数 说明
conversationType 会话类型。不支持传入 ConversationType.CHATROOM。
targetId 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。
objectNames 消息类型标识List。如RC:TxtMsg,RC:ImgMsg,RC:VcMsg等构成的List。
timestamp 最后一条消息的 sendtime ,获取此消息之前的 count 条消息,没有消息第一次调用应设置为:0。
count 要获取的消息数量
direction 要获取的消息相对于 oldestMessageId 的方向。以指定的 message id 作为获取的起始点,时间早于该 id 则为 FRONT,晚于则为 BEHIND。
callback 获取历史消息记录的回调,按照时间顺序从新到旧排列。

调用示例 :

     RongIMClient.getInstance().getHistoryMessages(conversationType, targetId, objectNames, timestamp, count, direction,callback);
  • 在会话中搜索指定消息的前 before 数量和 after 数量的消息。返回的消息列表中会包含指定的消息。消息列表时间顺序从新到旧。

提示

该接口不支持拉取聊天室历史消息。

参数说明 :

参数 说明
conversationType 指定的会话类型。
targetId 指定的会话 id。
sentTime 指定消息的发送时间,不能为0。
before 指定消息的前部分消息数量。
after 指定消息的后部分消息数量。
resultCallback 搜索结果回调。

调用示例 :

  RongIMClient.getInstance().getHistoryMessages(conversationType, targetId, sentTime, before, after, callback);
  • 获取本地数据库中保存,特定类型,targetId 的N条历史消息记录。通过此接口可以根据情况分段加载历史消息,节省网络资源,提高用户体验。

提示

该接口不支持拉取聊天室历史消息。

参数说明 :

参数 说明
conversationType 会话类型。
targetId 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 。
objectName 消息类型标识。
oldestMessageId 最后一条消息的 Id,获取此消息之前的 count 条消息,没有消息第一次调用应设置为:-1。
count 要获取的消息数量
callback 获取历史消息记录的回调,按照时间顺序从新到旧排列

调用示例 :

     RongIMClient.getInstance().getHistoryMessages(conversationType, targetId, objectName, oldestMessageId, count,callback);
  • 根据会话类型的目标 Id,回调方式获取某消息类型的某条消息之前或之后的N条历史消息记录。如: 要获取messageId为22的之前的10条图片消息,则相应参数为 getHistoryMessages(conversationType, targetId, "RC:ImgMsg", 22, 10, true, resultCallback)。

提示

返回的消息列表里面不包含oldestMessageId本身。

提示

该接口不支持拉取聊天室历史消息。

参数说明 :

参数 说明
conversationType 会话类型。不支持传入 ConversationType.CHATROOM。
targetId 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。
objectName 消息类型标识。如RC:TxtMsg,RC:ImgMsg,RC:VcMsg等。
baseMessageId 最后一条消息的 Id,获取此消息之前的 count 条消息,没有消息第一次调用应设置为:-1。
count 要获取的消息数量
direction 要获取的消息相对于 oldestMessageId 的方向。以指定的 message id 作为获取的起始点,时间早于该 id 则为 FRONT,晚于则为 BEHIND。
callback 获取历史消息记录的回调,按照时间顺序从新到旧排列。

调用示例 :

   RongIMClient.getInstance().getHistoryMessages(conversationType, targetId, objectName, baseMessageId, count, direction,callback);
  • 获取融云服务器中暂存且在本地数据库中没有存储的,特定类型,targetId 的N条(一次不超过20条)历史消息记录。通过此接口可以根据情况分段加载历史消息,节省网络资源,提高用户体验。该接口是从融云服务器中拉取,从服务端拉取消息后,客户端会做排重,返回排重后的数据。通常用于更换新设备后,拉取历史消息。

提示

建议优先从本地数据库拉取历史消息,当本地数据库没有历史消息后,再通过此接口获取服务器历史消息,时间戳传入本地数据库里最旧的消息时间

提示

该接口不支持拉取聊天室历史消息。

参数说明 :

参数 说明
conversationType 会话类型。
targetId 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。
dateTime 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。
count 要获取的消息数量,最多 20 条。
callback 获取历史消息记录的回调,按照时间顺序从新到旧排列。

调用示例 :

RongIMClient.getInstance().getRemoteHistoryMessages(conversationType, targetId,dateTime,count,callback);
  • 获取聊天室历史消息记录

提示

此方法从服务器端获取聊天室之前的历史消息,但是必须先开通聊天室消息云存储功能。 如果指定时间 0,则从存储的第一条消息开始拉取。

参数说明 :

参数 说明
targetId 目标 Id。
recordTime recordTime
count 要获取的消息数量,count 大于 0 ,小于等于 200。
order 拉取顺序: 降序, 按照时间戳从大到小; 升序, 按照时间戳从小到大。
callback 回调

调用示例 :

 RongIMClient.getInstance().getChatroomHistoryMessages(targetId, recordTime, count, order,callback);