【问题标题】:Rails application puma serverRails 应用程序 puma 服务器
【发布时间】:2018-11-19 10:49:54
【问题描述】:

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

【问题讨论】:

标签: ruby-on-rails puma


【解决方案1】:

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

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

此外,最大限度地减少每条消息的服务器处理时间将最大限度地减少调度问题。

这包括选择更快的技术/解决方案以及增加并发性或将数据库存储“事件”与“推送”事件处理方案分开(这通常是不必要的且不太理想,但它确实提供了更长的反应时间)。

【讨论】:

    猜你喜欢
    • 2016-09-13
    • 2016-10-10
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 2020-04-09
    • 2016-08-06
    • 2019-06-30
    相关资源
    最近更新 更多