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を参照してください。