1

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

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 回答