2011-12-06 14 views
2

私のウェブサイトでPubNubの使用を検討しました。Ruby on Rails PubNubは別プロセスとして購読します

また、PubNubでチャンネルを購読することもできます。

しかし、PubNubでチャンネルを購読するスクリプトを実行する方法を見つける必要があります。

たとえば、ドキュメントhttp://www.pubnub.com/blog/ruby-push-apiによれば、「公開されたメッセージを聞くには、サブスクライブ機能を呼び出す」ということが重要です。サブスクライブ機能はブロックされています。 "私は、この機能を実行するための方法を考えることはできません

## Subscribe (Listen for Messages) 
pubnub.subscribe({ 
'channel ' => 'my_channel', 
'callback' => lambda do |message| 
    ## Message Received!!! 
    puts(message['my_var']) ## print message 
    return true    ## keep listening? 
end 
    }) 

その後PubNubは、次のコードを提供し、「プロセス。」

バックグラウンドジョブのようなものはありませんか?これは私が必要とするものですか?

ガイダンスを参考にしてください。

+0

別のRubyファイルを作成して、端末のサーバーのコマンドラインから実行するだけです。しかし、あなたの質問を読み返した後は、Ruby /サーバー側からブラウザアプリケーションを使って購読しようとしているようです。 Rubyを使用して、購読するJavaScriptを含むWebページを提供します。おそらく、メッセージを公開するサーバー上で別のRubyスクリプト/プロセスが実行されているか、JavaScriptクライアントは相互にピアツーピアで公開しませんあなたのサーバーが関わっている - 典型的な使用例です。その場合は教えてください。 –

答えて

0

Ruby EventMachineの非同期HTTPリクエストメソッドとPubNub HTTP REST APIを使用するのが最善の方法です(現時点で)。

  1. EventMachine ::プロトコル:: HttpClient2 - >http://eventmachine.rubyforge.org/EventMachine/Protocols/HttpClient2.html
  2. PubNub HTTP RESTのAPI - >http://www.pubnub.com/tutorial/http-rest-push-api

    conn = EM::Protocols::HttpClient2.connect 'pubsub.pubnub.com', 80 
    req = conn.get('/subscribe/SUBSCRIBE_KEY/CHANNEL/0/TIMETOKEN') 
    

これは完全な例ではないことに注意してください、しかし、良い出発点...あなたはHTTP RESTガイドに従わなければなりません。

+0

もっと説明できますか?このコードはどこに置くのですか?たとえば、.rbファイルを作成しましたが、私がこれを行うと、Webブラウザーは接続を確立したためロードしています – Brian

+0

EventMachine ProtocolsのHttpClient2で提供されている例に従うのがベストです - http://eventmachine.rubyforge.org/EventMachine /Protocols/HttpClient2.html – PubNub

+0

'EM.run { CONN = EM ::プロトコル:: HttpClient2.connect 'pubsub.pubnub.com'、80 REQ = conn.get( '/') req.callback { |レスポンス| p(response.status) p(response.headers) p(response.content) } } – PubNub

関連する問題