openimsdk / openim-sdk-core

Instant Messaging
https://openim.io
Apache License 2.0
324 stars 305 forks source link

[BUG] MarkConversationMessageAsRead failed to set hasReadTime #540

Closed zhaolibo1989 closed 2 days ago

zhaolibo1989 commented 2 months ago

OpenIM Server Version

3.4.0

Operating System and CPU Architecture

Linux (AMD)

Deployment Method

Source Code Deployment

Bug Description and Steps to Reproduce

中文版本:

  1. 用户 A 和用户 B 单聊,开启阅后即焚功能。时间建议设置较长,如 5 分钟及以上。
  2. 用户 B 退出 APP ( SDK 停止运行)。
  3. 用户 A 向 B 连续发送 52 条消息。假设序号分别为 1, 2, ... 52
  4. 用户 B 打开 APP ,进入会话页,查看新消息。登录 SDK ,查询历史消息,每页 20 条,第一页查询完成后 MarkConversationMessageAsRead 设置会话已读,继续查询历史页(第二页和第三页)。
  5. 查询第三页时,序号为 1 的消息,标记为已读(isRead),但没有设置已读时间(hasReadTime)。无法完成焚烧倒计时的计算。

English:

  1. User A and User B are starting a single chat with the private-chat feature enabled. It is recommended to set a longer duration, such as 5 minutes or more.
  2. User B exits the APP (SDK stops running).
  3. User A sends 52 consecutive messages to B. Let's assume the sequence numbers are 1, 2, ..., 52.
  4. User B opens the APP, goes to the conversation page, and checks for new messages. APP login to the SDK, query the historical messages, 20 per page. After the first page is queried, set the conversation as read using MarkConversationMessageAsRead, and then continue to query the historical pages (the second and third pages).
  5. When querying the third page, the message with the sequence number 1 is marked as read (isRead), but the read time (hasReadTime) is not set. Unable to complete the burning countdown calculation.

Screenshots Link

No response

kubbot commented 1 week ago

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.

kubbot commented 2 days ago

This issue was closed because it has been stalled for 7 days with no activity.