我正在创建一个聊天应用程序(使用puma服务器,最大线程数为20,并且wen并发5)。在此应用程序中,由用户发送的消息被保存并通过套接字附加到接收方。但如果用户更快地键入更多消息,则消息顺序会发生变化。如何按顺序保存记录
答案 0 :(得分:0)
如果您正在使用推送/轮询技术(SSE / WebSockets / AJAX)来接收聊天数据,请考虑为消息添加基于毫秒的时间戳。
这将允许您使用为每条消息构建的确切时间戳在客户端订购消息,并防止消息排序问题。
此外,最小化每封邮件的服务器处理时间将最大限度地减少计划问题。
这包括选择更快的技术/解决方案以及增加并发性或分离数据库存储"事件"来自"推"事件处理方案(通常不必要且不太理想,但确实提供更高的反应时间)。