別のプロセスとしてではなく、Railsサーバーを実行するときに実行されるEventMachineサーバーを取得しようとしています。
したがって、たとえば、ここの単純なサーバーの例(em-websocket)を使用すると、次の(スタンドアロン?)ルビーコードが得られます。
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
}
コマンド「railsnewem-example」を実行したとすると、上記のコードは私のrails 3アプリのどこに配置されますか?
上記のコードは、理想的には別のスレッド(またはファイバー..?)で実行する必要があると思いますが、どのように見えるかはわかりません。
Webサーバーとして「thin」を使用すると、これは簡単なはずです。Herokuはデフォルトでこれを使用しているようで、ローカルでもテストできるように「薄い」gemをインストールしました。