2014-01-24 35 views
1

我想在啓動我的Rails服務器時啓動Faye。我在我的應用程序根目錄的文件faye.ru看起來像:使用Rails自動啓動Faye

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

每當我開始我的Rails服務器,王菲/薄試圖在同一端口作爲我的導軌的服務器上打開。 Rails應用程序的端口,然後默認的(9292)端口上同時

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

到初始化(發現這個在SO),但再細細開始:我可以像補充一下。儘管我認爲它無法在rails端口上啓動。我只是困惑於如何啓動瘦服務器在與Rails服務器不同的端口上。有任何想法嗎?

+0

我放棄了這個大部分。我只是將它與廚師一起奉獻,但從鋼軌開始它肯定會很性感 – dobus

回答

1

您可以在開發中進行以下操作。在生產中我建議實施它作爲一個獨立的服務器W /監測:

 
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