【发布时间】: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