异步回调 - PubNub,EventMachine,Rails

时间:2012-09-18 02:13:08

标签: ruby-on-rails eventmachine pubnub

我正在通过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

2 个答案:

答案 0 :(得分:1)

新的,完全重写的PubNub 3.3版本宝石将在24小时内发布。

我会在发布时提醒你,如果你遇到这个新宝石的任何问题,我们会从那里解决它。

geremy

答案 1 :(得分:0)

我忘了添加:

return true

现在继续听。几分钟后堆栈就会溢出,但这是另一个问题。