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