即时通信 IM Web&小程序&uni-app(历史消息)

SDK 既支持分页续拉消息列表,也支持根据指定的消息 sequence 或消息时间跳拉消息列表。

相关产品
即时通信 IM 产品页,含版本规格、价格与购买入口。

一、功能描述

云端存储的历史消息有存储时长的限制:

·体验版:免费存储 7 天,不支持延长。

·专业版:免费存储 7 天,支持延长。

·旗舰版:免费存储 30 天,支持延长。

·企业版:免费存储 90 天,支持延长。

注意:说明:

二、getMessageList

分页拉取指定会话的消息列表的接口,当用户进入会话首次渲染消息列表或者用户“下拉查看更多消息”时,需调用该接口。

注意:该接口可用于"拉取历史消息"。

接口

chat.getMessageList(options);

参数

参数 options 为 Object 类型,包含的属性值如下:

名称 类型 描述
conversationID String 会话 ID。会话 ID 组成方式:C2C${userID}(单聊)GROUP${groupID}(群聊)GROUP${topicID}(话题)@TIM#SYSTEM(系统通知会话)
nextReqMessageID String | undefined 用于分页续拉的消息 ID。第一次拉取时不要传入 nextReqMessageID,续拉时填入上次调用 getMessageList 接口返回的该字段的值。

返回值

Promise

示例

// 打开某个会话时,第一次拉取消息列表let promise = chat.getMessageList({conversationID: 'C2Ctest'});promise.then(function(imResponse) { const messageList = imResponse.data.messageList; // 消息列表。 const nextReqMessageID = imResponse.data.nextReqMessageID; // 用于续拉,分页续拉时需传入该字段。 const isCompleted = imResponse.data.isCompleted; // 表示是否已经拉完所有消息。});

// 下拉查看更多消息let promise = chat.getMessageList({conversationID: 'C2Ctest', nextReqMessageID});promise.then(function(imResponse) { const messageList = imResponse.data.messageList; // 消息列表。 const nextReqMessageID = imResponse.data.nextReqMessageID; // 用于续拉,分页续拉时需传入该字段。 const isCompleted = imResponse.data.isCompleted; // 表示是否已经拉完所有消息。});

三、getMessageListHopping

根据指定的消息 sequence 或 消息时间拉取会话的消息列表的接口。

接口

chat.getMessageListHopping(options);

参数

参数 options 为 Object 类型,包含的属性值如下:

名称 类型 描述
conversationID String 会话 ID。会话 ID 组成方式:C2C${userID}(单聊)GROUP${groupID}(群聊)GROUP${topicID}(话题)v2.19.1 起支持
sequence Number | undefined 用于拉群组会话漫游消息的起始 sequence。
time Number | undefined 消息的服务端时间,用于拉 C2C 会话漫游消息的起始时间。
direction Number 消息拉取方向,默认 0。0 向上拉,拉更旧的消息1 向下拉,拉更新的消息
count Number | undefined 需要拉取的消息数量,默认值和最大值为15,即一次拉取至多返回15条消息。

返回值

Promise

示例

// 根据 sequence 拉群漫游消息,direction 0 向上拉,拉更旧的消息,direction 1 向下拉,拉更新的消息let promise = chat.getMessageListHopping({ conversationID: 'GROUPtest', sequence: xxx, count: 15, direction: 0});promise.then(function(imResponse) { const { messageList, isCompleted, nextMessageSeq } = imResponse.data; // messageList – 消息列表 // isCompleted – 拉取完成标识, true 已拉完,false 未拉完,可以通过 nextMessageSeq 的返回值进行续拉 // nextMessageSeq – 续拉起始 sequence,当 isCompleted 返回 true 时,nextMessageSeq 返回空字符串});

// 根据时间拉 C2C 会话漫游消息,direction 0 向上拉,拉更旧的消息,direction 1 向下拉,拉更新的消息let promise = chat.getMessageListHopping({ conversationID: 'C2Ctest', time: xxx, count: 15, direction: 0});promise.then(function(imResponse) { const { messageList, isCompleted, nextMessageTime } = imResponse.data; // messageList – 消息列表 // isCompleted – 拉取完成标识,true 已拉完,false 未拉完,可以通过 nextMessageTime 的返回值进行续拉 // nextMessageTime – 续拉起始时间,当 isCompleted 返回 true 时,nextMessageTime 返回空字符串});

赞 (0)
上一篇 4天前
下一篇 4天前