Rails应用程序美洲狮服务器

时间:2018-06-09 16:49:09

标签: ruby-on-rails puma

我正在创建一个聊天应用程序(使用puma服务器,最大线程数为20,并且wen并发5)。在此应用程序中,由用户发送的消息被保存并通过套接字附加到接收方。但如果用户更快地键入更多消息,则消息顺序会发生变化。如何按顺序保存记录

1 个答案:

答案 0 :(得分:0)

如果您正在使用推送/轮询技术(SSE / WebSockets / AJAX)来接收聊天数据,请考虑为消息添加基于毫秒的时间戳。

这将允许您使用为每条消息构建的确切时间戳在客户端订购消息,并防止消息排序问题。

此外,最小化每封邮件的服务器处理时间将最大限度地减少计划问题。

这包括选择更快的技术/解决方案以及增加并发性或分离数据库存储"事件"来自"推"事件处理方案(通常不必要且不太理想,但确实提供更高的反应时间)。