我有一个使用pubnub的Web客户端,需要订阅1000个频道。但是一旦我调用pubnub.subscribe(allChannels),服务器就会返回500。
我没有找到任何限制说明为什么不能这样做。
答案 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)
您已经知道要订阅的频道列表, 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
})