我的 webapp 包含一个 HTTP 服务器和一个 WebSocket 服务器,它们都在 Rails 上运行。对于 Websockets,我使用的是在初始化程序中启动的 em-websocket,如下所示:
Thread.new do
EventMachine.run do
EventMachine::WebSocket.run(EVENTCHAT_CONFIG) do |socket|
[...]
end
end
end if Rails.const_defined?(:Server)
当我使用“rails s”启动服务器时,这可以正常工作,但它在分离模式下(“rails s -d”)不起作用。当我尝试通过 JS 连接到 Websocket 服务器时,它告诉我,它仍处于连接状态,所以我猜有什么东西阻止了它。我也认为这可能与线程有关。
我也尝试用瘦和独角兽启动服务器,但都无法启动 Websocket 服务器。
我在这里违反惯例吗?