在两个或多个 pubnub 频道上发布相同的负载

Posting same payload on two or more pubnub channels

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

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

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

您可以拥有另一个频道(频道-c),而不是在两个频道(频道-a、频道-b)上发布相同的消息。频道 a 和频道 b 的订阅者将另外订阅频道 c 并可以接收到组合组的消息。

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

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

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

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

是的,您仍在多次调用 PubNub 以将频道添加到每个频道组(将来可能是将频道添加到频道组列表),但您节省的是已发布消息的数量(减少消息计数)来自客户端。

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