初始化程序中的WebSocket不以分离模式启动

时间:2014-08-03 14:34:56

标签: ruby-on-rails ruby em-websocket

我的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服务器。

我是否反对这里的会议?

1 个答案:

答案 0 :(得分:0)

我刚刚切换到foreman,这使我能够使用一个命令启动多个ruby进程。您只需添加Procfile即可。对于部署,您可以将其导出到各种init系统,例如我的upstart

它对我来说还不起作用,不过我认为这是要走的路。