ChatApp 中“Seen”功能的最佳实践

问题描述 投票:0回答:1

我正在开发一个实时聊天应用程序,两个用户可以进行对话。我目前正在努力实现“已看到”功能,该功能向每个用户指示对方已阅读哪些消息。

上下文

  • 我正在使用 WebSocket 进行实时消息传递。
  • 我的后端是用 Django 构建的。

当前方法: 我正在考虑向每条消息添加一个

seen
布尔字段,并将其他用户发送的所有消息更新为在两个事件中“看到”:

  1. 当用户打开聊天时。
  2. 当用户积极参与聊天并接收消息时。

挑战

  • 我担心不断更新消息状态对性能的潜在影响,尤其是当存在活动消息时。

问题

  1. 是否有替代策略或最佳实践来在实时一对一聊天中实现“看到”功能?
  2. 对于优化我概述的方法,您有什么建议吗?

我希望在实现此功能的同时确保流畅高效的用户体验。任何见解或建议将不胜感激。

logic chat real-time
1个回答
0
投票

为消息分配顺序ID,存储用户读取的消息的最大ID。它的工作原理是假设所有具有较低 ID 的消息都已被读取。此方案允许您为每对用户对话存储和更新一个 ID。

© www.soinside.com 2019 - 2024. All rights reserved.