我正在通过EventMachine订阅PubNub频道,但是我目前只收到一条且只有一条消息发布到该频道。
EventMachine.run {
pubnub.subscribe({
'channel' => @channel,
'callback' => lambda do |message|
puts(message)
end
})
}
换句话说,我正在寻找一种方法来使回调“更”异步。我想我可以将它包装在periodic_timer中,但我对这种方法感觉不好。我现在应该关注这个领域的最佳实践吗?
修改 解决我的问题的方法首先是在订阅循环中添加“return true”,以便继续监听。但更重要的是,在一个新线程中生成EM,该线程监听所需的任何通道,然后将其全部发送到客户端侦听的一个通道。这解决了我在处理多个通道时遇到的问题,而无需服务器或客户端冻结/超时/溢出。请参阅http://www.pubnub.com/blog/ruby-push-api。
答案 0 :(得分:1)
新的,完全重写的PubNub 3.3版本宝石将在24小时内发布。
我会在发布时提醒你,如果你遇到这个新宝石的任何问题,我们会从那里解决它。
geremy
答案 1 :(得分:0)
我忘了添加:
return true
现在继续听。几分钟后堆栈就会溢出,但这是另一个问题。