我正在尝试启动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服务器感到困惑。有什么想法吗?
答案 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