历史消息获取
本地获取
Web 没有本地存储,不提供本地获取方法。
远端获取
从远端获取单群聊历史消息是指从融云服务端获取历史消息,该功能要求 App Key 已启用融云提供的单群聊消息云端存储服务。您可以在控制台 IM 服务管理页面为当前使用的 App Key 开启服务 。如果使用生产环境的 App Key,请注意仅 IM 旗舰版或 IM 尊享版可开通该服务。具体功能与费用以融云官方价格说明页面及计费说明文档为准。
API 参考:getHistoryMessages
参数说明
输入参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
conversationType | Number | 是 | 会话类型,单聊会话传入 RongIMLib.ConversationType.PRIVATE | 2.2.0 |
targetId | String | 是 | 单聊会话 ID | 2.2.0 |
timestamp | Number | 是 | 获取时间戳, 0 为从当前时间拉取 | 2.2.0 |
count | Number | 是 | 获取条数, 范围 1 - 20 | 2.2.0 |
objectName | String | 否 | 消息类名,仅桌面版解决方案有用 | 2.3.4 |
order | Number | 否 | 获取顺序,默认为 0, 0 表示升序:获取消息发送时间比传入 sentTime 小 的消息 1 表示倒序:获取消息发送时间比传入 sentTime 大 的消息 | 2.5.3 |
回调参数说明
参数 | 类型 | 说明 |
---|---|---|
list | Array | 获取的历史消息列表,返回 message 列表 |
hasMsg | Bool | 是否还有历史消息可以获取 |
message 属性说明
字段名 | 类型 | 说明 |
---|---|---|
conversationType | Number | 会话类型 |
targetId | String | 单聊会话 ID |
senderUserId | String | 发送者 ID |
content | Object | 消息内容 |
objectName | String | 消息的消息标识,融云内置消息以 "RC:" 开头 |
messageType | String | 消息类型 |
messageId | String | 本地生成的消息 ID |
messageUId | String | 服务端存储的消息 ID |
messageDirection | Number | 消息方向,发送: 1,接收: 2,枚举值通过 RongIMLib.MessageDirection 获取 |
offLineMessage | Boolean | 是否为离线消息 |
sentStatus | Number | 发送状态, 枚举值通过 RongIMLib.SentStatus 获取 |
sentTime | Number | 消息在融云服务端的发送时间 |
receivedStatus | Number | 接收状态, 枚举值通过 RongIMLib.ReceivedStatus 获取 |
receivedTime | Number | 接收时间 |
代码示例
var conversationType = RongIMLib.ConversationType.PRIVATE;
var targetId = '单聊会话 ID';
var timestamp = 0;
var count = 20;
RongIMLib.RongIMClient.getInstance().getHistoryMessages(conversationType, targetId, timestamp, count, {
onSuccess: function(list, hasMsg) {
/*
list: 获取的历史消息列表
hasMsg: 是否还有历史消息可以获取
*/
console.log('获取历史消息成功', list);
},
onError: function(error) {
// 请排查:单群聊消息云存储是否开通
console.log('获取历史消息失败', error);
}
});