聊天消息被乱序处理

我注意到有时当用户发送消息时,它会显示在聊天中已发布的其他消息的上方。另一方面,有时会发生相反的情况,即用户发送的消息会顽固地停留在聊天底部,即使有新消息发送。

我进行了一些调查,唯一真正的线索是这个 PR #34592,它在我们开始遇到问题(八月下旬/九月上旬)时被合并了。我认为它有关联,因为它允许使用客户端时间作为消息的时间戳,这可以很好地解释我们遇到的一些问题。但我不确定该 PR 是否有关联,因为有一些奇怪的地方不太合理,但我认为这是一个很好的起点。

为了说清楚,这不仅仅是我这边的问题,所有聊天用户看到的消息都显示顺序错误。

以下是我们观察到的一些可能有助于调查此问题的现象:

  • 该错误根本不是确定性的,它只偶尔发生,但当它发生时,通常会围绕特定的用户及其所有消息发生。例如,一个用户的消息会“过去”或“将来”发送(即在其他旧消息之前,或在新消息之后)。
  • 它似乎在少数特定用户身上更一致地发生,这可能意味着它与特定的路由或不同用户的延迟有关。
  • 有人可以直接回复聊天中看到的消息,但回复仍然被注册为发生在它所回复的消息“之前”,导致出现像这样的非常奇怪的情况:

回复的消息显示顺序错误示例

2 个赞

这是一份很棒的报告,非常感谢您花费时间撰写。\n\n我会通知相关团队,他们会据此确定优先级。

2 个赞