Rails アプリと複数の Ruby クライアントの間で pub/sub サービスを構築する適切な方法を探しています。
これまでに faye と faye-rails を試しましたが、メッセージがキューに入れられ、特定のチャネルをリッスンしているクライアントが再起動されるまで配信されないため、適切ではありません。また、Pusher や PubNub などのサービスも使用できません。
推奨事項はありますか?
乾杯マーティン
Rails アプリと複数の Ruby クライアントの間で pub/sub サービスを構築する適切な方法を探しています。
これまでに faye と faye-rails を試しましたが、メッセージがキューに入れられ、特定のチャネルをリッスンしているクライアントが再起動されるまで配信されないため、適切ではありません。また、Pusher や PubNub などのサービスも使用できません。
推奨事項はありますか?
乾杯マーティン
Rails 4 の場合は、ActionController::Liveを参照してください。それはあなたのニーズに適していませんか?
class MyController < ActionController::Base
include ActionController::Live
def stream
response.headers['Content-Type'] = 'text/event-stream'
100.times {
response.stream.write "hello world\n"
sleep 1
}
rescue IOError
# client disconneted
ensure
response.stream.close
end
end
以前の Rails では、次のアプローチを試すことができます:
Ruby on Rails 3: Streaming data through Rails to client、
Rails 3.2 streaming (2 番目のリンクはLast-Modified
ヘッダーに注意することです)