1

EventMachineを介してPubNubチャネルをサブスクライブしていますが、現在、チャネルに投稿されたメッセージは1つだけです。

EventMachine.run {
pubnub.subscribe({
'channel'  => @channel,
'callback' => lambda do |message|
puts(message)
end  
})
}

言い換えれば、私はコールバックを「もっと」非同期にする方法を探しています。私はそれをperiodic_timerでラップすることができたと思いますが、私はこのアプローチについて悪い気持ちを持っています。この分野で今私がすべきベストプラクティスはありますか?

編集: 私の問題の解決策は、まず、サブスクライブループに「returntrue」を追加して、リッスンを継続することでした。しかし、もっと重要なことは、必要なチャネルをリッスンする新しいスレッドでEMを生成し、クライアントがリッスンする1つのチャネルにすべてをディスパッチすることです。これにより、サーバーまたはクライアントのフリーズ/タイムアウト/オーバーフローなしで複数のチャネルを処理する際の問題が解決しました。http://www.pubnub.com/blog/ruby-push-apiを参照してください。

4

2 に答える 2

1

完全に書き直された新しい PubNub バージョン 3.3 gem が 24 時間以内にリリースされる予定です。

リリースされたらお知らせします。この新しい gem で問題が発生した場合は、そこからトラブルシューティングを行います。

ジェレミー

于 2012-09-18T06:15:50.167 に答える
0

追加するのを忘れていました:

return true

今は聴き続けています。スタックは数分後にオーバーフローしますが、それは別の質問です。

于 2012-09-18T05:28:58.547 に答える