Send group message read receipts
Report member-level read receipts for group messages and listen for read detail updates.
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
| Parameter | Type | Required | Description |
|---|---|---|---|
conversationID | string | Yes | Target group conversation identifier. |
clientMsgIDs | string[] | Yes | Array 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.
Was this page helpful?