浏览 SDKs · WASM
SDKsWASM

标记会话已读

使用 WASM SDK 将指定会话的消息标记为已读。

复制

用户打开会话并阅读完当前可见消息后,调用 markConversationMessageAsRead()。不要在只预览通知或后台收到消息时提前标记已读。

await openimsdk.markConversationMessageAsRead(conversationID);

Promise 成功表示标记已读请求已经完成,不等于会话事件已经到达。随后通过 CbEvents.OnConversationChanged 取得新的 ConversationItem[],按 conversationID 合并未读数;完整监听代码见获取会话列表。需要立即校准时,重新查询该会话。

对于单聊,当前用户标记会话已读后,对端可通过 CbEvents.OnRecvC2CReadReceipt 收到消息已读回执。本页是该事件的完整监听归属页;dataReceiptInfo[],先按对端用户定位单聊会话,再按每项 msgIDList 中的 clientMsgID 更新已读状态。

import { CbEvents } from '@openim/wasm-client-sdk';

const handleC2CReadReceipt = ({ data }) => {
  mergeC2CReadReceipts(data);
};

openimsdk.on(CbEvents.OnRecvC2CReadReceipt, handleC2CReadReceipt);

function removeC2CReadReceiptListener() {
  openimsdk.off(CbEvents.OnRecvC2CReadReceipt, handleC2CReadReceipt);
}

组件卸载、退出登录或切换账号时调用 removeC2CReadReceiptListener()。群聊中调用本 API 只清理当前账号的会话未读数;需要上报群成员级已读状态时,另见上报群消息已读