我有一个使用 pubnub 的网络客户端,需要订阅 1000 个频道。但是一旦我调用 pubnub.subscribe(allChannels),服务器就会返回 500。
我没有发现任何限制说明为什么不能。
我有一个使用 pubnub 的网络客户端,需要订阅 1000 个频道。但是一旦我调用 pubnub.subscribe(allChannels),服务器就会返回 500。
我没有发现任何限制说明为什么不能。
实际上,您可以订阅的频道数量没有硬性限制。但如果您要订阅超过 20-30 个频道,通常建议使用频道组,它允许您创建频道集合并为该集合命名。然后,您的客户只需订阅频道组而不是单个频道。 https://www.pubnub.com/developers/tech/key-concepts/stream-controller/channel-groups/
订阅频道的数量是有限的,这就是我测试过的:640 个频道。一旦订阅了 640 个频道,它仍然是成功的,但是如果你再订阅一个,就会开始发生错误(服务器返回 500)并且你所有的 pubnub 连接都会被破坏。
看来你可以同时订阅更多频道(官网建议50个频道,但我试过一次订阅400个频道,成功了)
所以总限制640是我发现的。
您已经知道要订阅的频道列表,频道组将帮助您获得每组 2,000 个频道。还有一些选项可以使用通配符订阅无限数量的频道!
每个频道组可以有2,000 个频道。这符合您订阅 1,000 个频道的需求。
还要记住,安全性很重要。请记住,您应该保护您的数据。
以下更多频道订阅选项供您考虑。
对于 PubNub SDK 4.0 及更高版本。多路复用 SDK 实际上最多支持大约50 个通道。您可以进一步增加此数字,但设备性能会受到影响。最好利用核心PubNub 流控制器产品的频道组功能。Stream Controller 包括以下频道订阅增强功能。
最大可寻址通道:(无限)
PubNub 还支持使用分层点符号的通配符订阅。今天在 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 )
您可以通过订阅Wildcard Channels、Channel Groups、Presence Event Stream Channels等的组合来复用您的连接。建议将多路复用通道保持在 50 以下,以获得最佳设备性能。
最大可寻址通道:(无限)
流过滤器允许订阅者应用过滤器以仅接收满足过滤器条件的消息。消息过滤器由订阅客户端设置,但它应用于服务器端,从而防止不需要的消息(那些不符合过滤器条件的消息)到达订阅者。流过滤器由两个组件实现:发布时的元字典和订阅时的过滤器表达式。过滤器应用于客户端订阅的所有频道。当消息被加密时(在初始化 PubNub 时使用加密密钥),元字典是纯文本,以便 PubNub 网络可以根据需要正确应用过滤器。重要的是只包含非机密信息或其他需要加密的信息。
您需要更正语法。
pubnub.subscribe({
channels:allChann
})