历史消息

本文主要介绍 云上曲率即时通讯IM SDK的消息历史功能。

功能描述

云上曲率IM SDK为开发者提供如下内容:

  • 支持单条、批量历史消息的获取
  • 支持P2P聊天、群组聊天、房间聊天历史的获取
  • 可以自定义拉取方式,如按指定消息ID、指定时间范围等
  • 默认从服务端拉取历史消息

接口说明

批量获取历史消息

云上IM SDK提供获取批量历史消息的接口:

  • getHistoryChatMessageByMessageId提供以messageId为索引的批量历史消息获取
  • getHistoryChatMessage提供以cursorId为索引的批量历史消息获取
getHistoryChatMessageByMessageId

接口参数说明:

参数 含义 说明
tatgetId 发送消息的目标ID conversationType 确定 userId/groupId/roomId
desc 降序 true为降序排列,false为升序排列,默认为true,即向选择的messageId往前获取
count 数量 单页获取历史消息的数量,最多20条
beginMsec 开始时间戳 获取消息的开始时间,可以默认为0,第二次查询请传入上次获取历史结果的beginMsec
endMsec 结束时间戳 获取消息的结束时间,可以默认为0,第二次查询请传入上次获取历史结果的endMsec
messageId 消息ID 消息ID唯一
conversationType 会话类型 包括P2P、群组和房间
timeout 超时时间 发送消息定义的超时时间,单位为秒
  • 建议messageIdbeginMsec/endMsec分开使用。

    • 使用messageId获取消息,是消息ID大于messageId的消息。
    • 使用beginMsec/endMsec获取消息,是在beginMsec/endMsec实践范围区间产生的消息(闭区间)。
代码示例
-(void)getHistoryChatMessageByMessageId:(NSNumber * _Nonnull)targetId
                                   desc:(BOOL)desc
                                  count:(NSNumber * _Nonnull)count
                              beginMsec:(NSNumber * _Nullable)beginMsec
                                endMsec:(NSNumber * _Nullable)endMsec
                              messageId:(NSNumber * _Nonnull)messageId
                       conversationType:(LDConversationType)conversationType
                                timeout:(int)timeout
                                success:(void(^)(IMHistory* _Nullable history))successCallback
                                   fail:(IMAnswerFailCallBack)failCallback;
getHistoryChatMessage

接口参数说明:

参数 含义 说明
tatgetId 发送消息的目标ID conversationType 确定 userId/groupId/roomId
desc 降序 true为降序排列,false为升序排列,默认为true,即向选择的messageId往前获取
count 数量 单次获取历史消息的数量
beginMsec 开始时间戳 获取消息的开始时间,可以默认为0,第二次查询请传入上次获取历史结果的beginMsec
endMsec 结束时间戳 获取消息的结束时间,可以默认为0,第二次查询请传入上次获取历史结果的endMsec
lastCursorId 游标ID 消息在服务端数据库中的唯一ID
conversationType 会话类型 包括P2P、群组和房间
timeout 超时时间 发送消息定义的超时时间,单位为秒
  • 建议lastCursorIdbeginMsec/endMsec分开使用。

    • 使用lastCursorId获取消息,是cursorId大于lastCursorId的消息。
    • 使用beginMsec/endMsec获取消息,是在beginMsec/endMsec实践范围区间产生的消息(闭区间)。
代码示例
-(void)getHistoryChatMessage:(NSNumber * _Nonnull)targetId
                        desc:(BOOL)desc
                       count:(NSNumber * _Nonnull)count
                   beginMsec:(NSNumber * _Nullable)beginMsec
                     endMsec:(NSNumber * _Nullable)endMsec
                lastCursorId:(NSNumber * _Nullable)lastCursorId
            conversationType:(LDConversationType)conversationType
                     timeout:(int)timeout
                     success:(void(^)(IMHistory* _Nullable history))successCallback
                        fail:(IMAnswerFailCallBack)failCallback;