httpヒットを介してデータのストリームが届きます。データをリアルタイムで更新したい。HTTPヒットデータをredispubsubにプッシュし始めました。それをユーザーに見せたいと思います。
redisチャネルでデータを取得したらすぐにユーザーの画面を更新したい。私はルビーを使いたいと思っています。それは私が慣れ親しんでいる言語だからです。
httpヒットを介してデータのストリームが届きます。データをリアルタイムで更新したい。HTTPヒットデータをredispubsubにプッシュし始めました。それをユーザーに見せたいと思います。
redisチャネルでデータを取得したらすぐにユーザーの画面を更新したい。私はルビーを使いたいと思っています。それは私が慣れ親しんでいる言語だからです。
クライアント側で EventSource と組み合わせて Sinatra の「ストリーム」機能を使用します。ただし、IEは除外します。
https://github.com/redis/redis-rb/blob/master/examples/pubsub.rb (別のオプションはhttps://github.com/pietern/hiredis-rb )から取得したほとんど機能するサーバー側のコードです。 :
get '/the_stream', provides: 'text/event-stream' do
stream :keep_open do |out|
redis = Redis.new
redis.subscribe(:channel1, :channel2) do |on|
on.message do |channel, msg|
out << "data: #{msg}\n\n" # This is an EventSource message
end
end
end
end
クライアント側。最新のブラウザーのほとんどは、IE を除き、EventSource をサポートしています。
var stream = new EventSource('/the_stream');
stream.onmessage = function(e) {
alert("I just got this from the server: " + e.data);
}
私が知っているように、このリンクFaye
をチェックしてこれを行うことができます
カップルアプローチがあります。
Thin と Sinatra を使用してロング ポーリング サーバーを構築し、このようなことを達成したことを今でも覚えています。
私は、これと、redis に直接接続するために使用できるこのフラッシュ クライアントのようなものをいくつか知っています。
EventMachine Websocket 実装があり、HTML 5 および非 HTML 5 ブラウザー用の Flash で使用および接続できます。
Websocket ラック
他のアプローチ それらのほとんどはルビーで書かれていないので、提案だけを試すことができます
Juggernaut (Redis Pub-sub Thing に基づいているとは思わない
NULLMQ redis pub sub ではありませんが、これは JavaScript での Zero MQ 実装です
あなたがグーグルアップした場合に見つけることができる他のアプローチはほとんどありません:)
この助けを願っています