如何从客户端订阅1000个pubnub频道?

时间:2018-08-07 05:20:08

标签: pubnub

我有一个使用pubnub的Web客户端,需要订阅1000个频道。但是一旦我调用pubnub.subscribe(allChannels),服务器就会返回500。

我没有找到任何限制说明为什么不能这样做。

4 个答案:

答案 0 :(得分:1)

订阅频道数量有限,这是我测试过的: 640 个频道。并且,一旦订阅了640个频道,它仍然会成功,但是如果再订阅一个频道,则会开始发生错误(服务器返回500),并且所有pubnub连接都将被破坏。

似乎您可以一次订阅更多频道(其官方网站建议 50 个频道,但我尝试一次订阅400个频道,并且成功)

因此,我发现的总限额为 640

答案 1 :(得分:1)

实际上,您可以订阅的频道数量没有硬性限制。但是,如果您要订阅20-30个以上的频道,通常建议改用“频道组”,这样您就可以创建频道集合并为其命名。然后,您的客户只需订阅频道组,而不是各个频​​道。 https://www.pubnub.com/developers/tech/key-concepts/stream-controller/channel-groups/

答案 2 :(得分:0)

订阅1,000个及更多频道

  

您已经知道要订阅的频道列表, Channel Groups 将帮助您每组2,000个频道。还有一些选项可以使用通配符来订阅无限数量的频道

     

每个channel group 您可以拥有 2,000个频道。这符合您需要1,000个频道订阅的需求。

     

还请记住Security is important。请记住,您应该保护自己的数据。

以下更多频道订阅选项供您考虑。

频道订阅选项

对于PubNub SDK 4.0及更高版本。 SDK的多路复用实际上最多支持约 50个频道。您可以进一步增加此数字,但会影响设备性能。最好利用核心PubNub Stream Controller产品的渠道组功能。 Stream Controller包括以下频道订阅增强功能。

通配符订阅

最大可寻址频道:(无限制)

PubNub还支持Wildcard Subscriptions using a Hierarchical dot notation。今天,您可以在PubNub中订阅频道 "a.b.*" ,并在a.b以下的任何频道接收消息。您可以发布到频道 "a.b.c" 并在通配符订阅中接收消息。请注意,该层次结构支持的最大深度当前为 3 。例如, "a.b.*" 很好,但是不支持 "a.b.c.*"

渠道组

最大可寻址频道:(2,000✕10 = 20,000)

通过PubNub通道组动态控制设备的数据流提要。您可以远程控制设备已订阅的流,并可以从频道列表中动态添加删除频道。您最多可以多路复用10个频道组的订阅,每个频道组最多可以包含2,000个频道。

多路复用

最大可寻址频道:(〜50-500)

您可以通过订阅通配符频道频道组存在事件流频道等组合来多路连接。建议将多路复用通道的数量保持在50以下,以达到最佳设备性能。

流过滤

最大可寻址频道:(无限制)

Stream Filter允许订户应用过滤器以仅接收满足过滤器条件的消息。消息过滤器是由订阅客户端设置的,但是它应用在服务器端,因此可以防止不需要的消息(不满足过滤器条件的消息)到达订户。流过滤器由两个组件实现:发布时使用元字典,订阅时使用过滤器表达式。筛选器将应用于客户端订阅的所有渠道。对邮件进行加密(初始化PubNub时使用加密密钥)时,元字典为纯文本,因此PubNub网络可以根据需要正确应用过滤器。重要的是,仅包含非机密信息或需要加密的信息。

答案 3 :(得分:0)

您需要更正语法。

pubnub.subscribe({
   channels:allChann
})