PubNub 多路复用问题

PubNub multiplexing issue

我正在尝试从自定义 WebSocket 切换到 PubNub。在我的应用程序中,我需要用户一次订阅多个频道,所以我认为多路复用是可行的方法。问题是,当我想一次订阅超过 4 个频道时,我会收到无穷无尽的 CORS 错误流。一个一个地订阅频道,中间有延迟没有任何区别。我启用了 "Stream Controller" 扩展程序。

PubNub 状态用户状态数据

https://www.pubnub.com/docs/web-javascript/presence

当您订阅多个频道并提供状态时,例如:

pubnub.subscribe({
   channel: "ch1,ch2,ch3",
   message: function(message) {
       console.log('message', message);
   },
   state: {
     age: 67,
     username: 'rplant@ledzep.com',
     full: 'Robert Plant',
     country: 'UK',
     latlong: '51.5072° N, 0.1275° W'
     profile_pic: 'http://somewebsite.com/images/rplant.png'
}});

...状态已添加到该用户的每个频道。每个频道的每个用户都有自己的状态。上面,三个通道中的每一个都用相同的状态数据初始化,但是当你设置状态时,例如:

pubnub.state({
   channel: 'ch2',
   uuid: 'rplant',
   state: {'full_name' : 'Bobby Plant'},
   callback: function(m){console.log(JSON.stringify(m))}
 });

...您可以指定一个频道(或多个频道),并通过您在使用 PUBNUB.int.

初始化 PubNub 时为他们设置的 UUID 指定用户

关于状态大小限制,发布消息有 32KB 的消息限制,这对于状态事件也是如此,因为它们只是在状态通道上发布的消息。

但一般来说,您应该将状态保持在最低限度。它不适用于大量数据。文件(图像)应该存储在分布式文件系统上,URL 通过 PubNub 传递。

我发现了问题所在。状态太大,它有用户详细信息,包括照片缩略图。它的大小约为 6000 个字符。它离 32kb 还很远,我没有读到任何关于它的不同限制的信息,当我订阅了至少 5 个频道时,它就发生了。是否有一些幕后逻辑可以将每个通道数量的状态大小相乘? 5*~6000接近32k的限制。