浏览 SDKs · WASM
平台
SDKsWASM商业版

读取消息上下文

使用 WASM SDK 读取一条消息前后的上下文。

复制

当用户从搜索结果、引用消息或通知跳转至聊天窗口中的目标消息时,可调用 fetchSurroundingMessages(),以该目标 MessageItem 为锚点,一次性读取其上下文前后的相关消息:

参数说明

参数类型是否必填说明
startMessageMessageItem是已经取得的锚点消息。
viewTypeMessageViewType是上下文查看方向;历史消息使用 MessageViewType.History。
beforenumber是锚点之前最多读取的消息数量。
afternumber是锚点之后最多读取的消息数量。
import { MessageViewType } from '@openim/wasm-client-sdk';

const { data: surrounding } = await openimsdk.fetchSurroundingMessages({
  startMessage: targetMessage,
  viewType: MessageViewType.History,
  before: 20,
  after: 20,
});

renderMessages(surrounding.messageList);

接口调用成功后,data.messageList 即为围绕锚点按时间顺序排布的 MessageItem[] 消息列表,详细字段见消息概览。

参数 before 与 after 分别控制锚点前后的读取数量上限。实际拉取到的条数可能少于请求数量(例如锚点靠近边界或部分消息已删除)。将上下文消息并入现有列表时,建议通过 clientMsgID 匹配去重。若尚未获取到目标锚点对象,可先参考按 ID 查找消息获取。