Skip to content

Add Group Message Read Receipt Functionality#1029

Open
rookiewwj wants to merge 1 commit intoopenimsdk:mainfrom
rookiewwj:main
Open

Add Group Message Read Receipt Functionality#1029
rookiewwj wants to merge 1 commit intoopenimsdk:mainfrom
rookiewwj:main

Conversation

@rookiewwj
Copy link

part of openimsdk/open-im-server#3527

Summary

SDK-side support for group message read receipts: introduce a cursor model, a sync API, and improved notification handling.
Part of openimsdk/open-im-server#3527

Data Model

  • readCursorState: stores the latest per-conversation cursorVersion used as the anchor for incremental sync.
  • ReadCursor: maintains (convID, uid) → maxReadSeq for each user in a conversation.
  • Message.AttachmentInfo.cursorVersion: records the cursorVersion at the last projection/update, enabling idempotency and preventing duplicate projections.

API

  • getConversationReadCursors(): syncs conversation read cursors from the server to local storage; persists (convID, uid, maxReadSeq) and updates local caches/indexes.
  • projectGroupReadInfo(): projects cursor data from the local DB onto Message.AttachmentInfo; recommended to call for messages in the visible viewport.

Notifications

  • Group notifications: enhanced handling of membership/metadata changes and cursor deltas; promptly updates local readCursorState and ReadCursor.
  • Conversation message notifications: added handling for group read-receipt events.

@pull-request-size pull-request-size bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Sep 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant