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