我试图获得一个在我运行我的 rails 服务器时运行的 EventMachine 服务器,而不是作为一个单独的进程。
因此,例如,使用此处的简单服务器示例(em-websocket),您将获得以下(独立?)ruby 代码:
EventMachine.run {
EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 8080) do |ws|
ws.onopen {
puts "WebSocket connection open"
# publish message to the client
ws.send "Hello Client"
}
ws.onclose { puts "Connection closed" }
ws.onmessage { |msg|
puts "Recieved message: #{msg}"
ws.send "Pong: #{msg}"
}
end
}
假设我刚刚运行了命令“rails new em-example”,上面的代码在我的 rails 3 应用程序中的什么位置?
我想上面的代码应该理想地在一个单独的线程(或光纤..?)中运行,但我不确定它看起来如何。
我已经看到如果使用“瘦”作为我的网络服务器,这应该很容易。Heroku 似乎默认使用它,我已经安装了“瘦”gem,所以我也可以在本地对其进行测试。