【问题标题】:Using Web Sockets in a Rails 4 application with Puma在带有 Puma 的 Rails 4 应用程序中使用 Web 套接字
【发布时间】:2017-07-12 19:01:06
【问题描述】:

我在 Rails 4.2.7 应用程序中工作,需要使用 WebSockets。不幸的是,我无法升级到 Rails 5 并为此使用 Action Cable。

该应用程序在生产中使用 Puma,我这么说是因为我发现了一些用于 Web Sockets 的 gem,但它们只能在 Thin 应用程序服务器中工作,但不能与 Puma 应用程序服务器一起使用。

有什么简单的解决办法吗?

具体来说,我需要做的是每次更新我的模型时向我的客户(在这种情况下为浏览器)触发一个事件

class MyModel < ActiveRecord::Base
  after_commit :notify_users, if: :some_condition

  def notify_users
    # Trigger a web socket event to my clients here
  end
end

我试过https://github.com/websocket-rails/websocket-rails,消息是根据日志发送的,但我没有在浏览器上收到它,不幸的是,宝石似乎不再维护了。

是否有可能适用于这种情况的解决方案?谢谢

【问题讨论】:

  • 彪马超级重要吗? iodine 提供类似的功能(多线程、多处理)以及 Native Websockets(比我测试过的任何 Ruby 实现都快得多)、静态文件服务等......我有偏见,因为我是作者,但我认为它更适合 websockets(我认为它也更快,但您可以自己测试)。

标签: ruby-on-rails ruby sockets ruby-on-rails-4 websocket


【解决方案1】:

基于这个issue,听起来最好的选择是tubesock

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 2014-10-17
    • 2011-07-27
    相关资源
    最近更新 更多