自动启动Faye与Rails

时间:2014-01-24 05:47:28

标签: ruby-on-rails faye

我正在尝试启动Faye时启动我的rails服务器。我的应用程序根目录中有一个faye.ru文件,如下所示:

require 'faye'
faye_server = Faye::RackAdapter.new(:mount => '/queue-listener', :timeout => 45)
run faye_server

每当我启动我的rails服务器时,Faye / thin都试图在与我的rails服务器相同的端口上打开。我可以添加类似的内容:

Thread.new do  
  system("rackup faye.ru -s thin -E production")  
end  

进入初始化程序(在SO上找到),然后在rails app端口和默认(9292)端口上启动瘦。我认为它无法在rails端口上启动。我只是对如何在与rails服务器不同的端口上启动瘦/ faye服务器感到困惑。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以在开发中执行以下操作。在生产中,我建议将其作为一个独立的服务器实现监控:

if Rails.env.development?
  require 'eventmachine'
  require 'rack'
  require 'thin'
  require 'faye'

  Faye.logger = Logger.new(Rails.root.join('log/faye.log'))

  Faye::WebSocket.load_adapter('thin')

  thread = Thread.new do
    EM.run {
      thin = Rack::Handler.get('thin')
      app = Faye::RackAdapter.new(mount: '/faye', timeout: 10)
      thin.run(app, :Port => 8000) do |server|
        ## Set SSL if needed:
        # server.ssl_options = {
        #   :private_key_file => 'path/to/ssl.key',
        #   :cert_chain_file  => 'path/to/ssl.crt'
        # }
        # server.ssl = true
      end
    }
  end
  at_exit { thread.exit }
end