在两个或多个pubnub通道上发布相同的有效负载

时间:2015-08-07 03:19:59

标签: ios objective-c pubnub

在两个或多个PubNub通道上发布相同的消息有效负载是否会按比例增加所需的网络带宽?

我们正在使用移动数据网络,因此请注意带宽使用情况。

2 个答案:

答案 0 :(得分:1)

每个发布操作都是一个单独的请求,所以是的。当您在多个频道上发布时,您会发出多个请求,并会按比例增加带宽消耗。

不是在两个频道(频道-a,频道-b)上发布相同的消息,而是可以有另一个频道(频道-c)。 channel-a和channel-b的订户将另外订阅channel-c,并且可以接收针对组合组的消息。

频道是瞬态资源,因此您可以根据需要创建任意数量的资源 - http://www.pubnub.com/knowledge-base/discussion/494/how-many-channels-can-i-use

答案 1 :(得分:0)

使用PubNub渠道组模拟多渠道发布

模拟多渠道发布的另一种方法是将Channel Groups与临时频道一起使用。它的工作原理如下:

  1. 每个客户订阅自己的唯一渠道组:cg_user1,cg_user2等。
  2. 当您想要将消息发布到多个频道时,您只需要知道谁需要接收消息。我将假设您能够在服务器端确定这一点或将用户列表(UUID)传递给您的服务器。因此,请将您的消息发送到服务器(使用UUID列表,除非您能在服务器上解决这个问题)。
  3. 您的服务器然后生成一个临时通道(如果您愿意,可以使用UUID生成器),然后遍历用户列表并将新的临时通道添加到每个用户的唯一通道组(cg_user1等)。
  4. 然后,您的服务器会将消息发布到新的临时频道。现在,拥有该频道的所有频道组都将收到该消息。
  5. 一旦发布成功(发布成功),您就可以从每个通道组中删除该频道。或者,一旦客户端收到消息,您就让客户端删除该通道(可能是从历史记录或消息捕获中提取消息)。
  6. 是的,您仍然要多次调用PubNub将频道添加到每个频道组(可能是将来频道组列表的添加频道),但您节省的是已发布消息的数量(减少来自客户端的消息计数)。

    您也可以将消息发布到服务器,然后让服务器发布到每个频道都是私有用户频道的唯一频道(而不是频道组)。相同的结果,但是多个发布会增加您的消息计数,如果只是少数,除非您有数千个频道要发布。