Browse SDKs · HarmonyOS
Platform
SDKsHarmonyOSEnterprise

Send group message read receipts

Report member-level read receipts for group messages and listen for read detail updates.

Copy

All messages within a single batch must belong to the target group chat conversation.

Code example

import sdk, {
  EventOnRecvGroupReadReceiptData,
  OpenIMSDKEvent,
  SendGroupMessageReadReceiptReq,
} from '@openimsdk/imsdk';

const request: SendGroupMessageReadReceiptReq = {
  conversationID: conversationID,
  clientMsgIDs: visibleUnreadMessageIDs,
};
await sdk.sendGroupMessageReadReceipt(request);

const handleGroupReadReceipt = (data: EventOnRecvGroupReadReceiptData): void => {
  mergeGroupMessageReadInfo(
    data.groupMessageReceipt.conversationID,
    data.groupMessageReceipt.groupMessageReadInfo,
  );
};
const unsubscribeGroupReadReceipt = sdk.on(
  OpenIMSDKEvent.EventOnRecvGroupReadReceipt,
  handleGroupReadReceipt,
);

export function removeGroupReadReceiptListener(): void {
  unsubscribeGroupReadReceipt();
}

Parameters

ParameterTypeRequiredDescription
conversationIDstringYesTarget group conversation identifier.
clientMsgIDsstring[]YesArray of client message IDs marked as read.

Return value

Returns a Promise that resolves to void upon server acceptance.

State changes after the call

Do not include messages from other conversations or messages that have not yet been rendered to the user. Clients reconcile message read status using clientMsgID (qualified by conversationID as needed). Promise resolution, receipt event delivery, and reader list queries represent three distinct stages. To query which members have read a message, see Get group message readers; conversation unread counters are maintained independently by conversation-level read APIs. Remove the listener when disposing of the state layer.