【发布时间】:2016-08-08 14:01:43
【问题描述】:
我有一个使用 pub-nub v4 的基于 API 的 Rails 应用程序。使用 pub-nub 的客户端(IOS/Android)也是如此。
以下是我们正在执行的步骤:
1) 在创建任何对象时,我们订阅了两个频道并创建了一个 listener.here。同时在客户端,我们根据此对象 ID 订阅了两个频道。
2) 因此,对于任何从 IOS 端发布的相同通道,都会在 Web 端创建多个请求。因此将创建多个 DB 条目。
这里是订阅和退订的代码示例。
$pubnub.add_listener("broadcast_#{broadcast.id.to_s}")
$pubnub.subscribe("broadcast_#{broadcast.id.to_s},broadcastLikes_#{broadcast.id.to_s}")
$pubnub.publish("broadcast_#{self.id.to_s}", { type: "StopBroadcast", text: text })
$pubnub.remove_listener("broadcast_#{self.id.to_s}")
$pubnub.unsubscribe("broadcast_#{self.id.to_s}, broadcastLikes_#{self.id.to_s}")
任何人都可以帮助我!
【问题讨论】:
-
为什么要从 Rails 服务器订阅?如果您需要将消息从客户端发送到服务器,为什么不直接发布它们呢?您通过从您的服务器订阅所做的一切就是取代传统的网络应用程序 POST,这并没有真正提供任何优势。您应该使用 PubNub 的部分是另一个方向:服务器到客户端。
-
@CraigConover 这里add_listener的作用是什么?subscribe和add_listener是什么关系?因为没有add_listener我无法追踪subscribed的回调,所以紧急通知我。跨度>
-
请提供任何示例,我们如何处理名称是动态生成的多个侦听器。
-
监听器用于所有频道订阅响应和状态。您对多个听众的要求是什么?
-
@CraigConover 非常感谢您的帮助。我很清楚我的所有疑问,但将来如果我需要的话会问你。:)
标签: android ios ruby-on-rails ruby-on-rails-4 pubnub