PubNub多路复用问题

时间:2016-01-06 17:47:16

标签: javascript pubnub

我试图从自定义WebSockets切换到PubNub。在我的应用程序中,我需要用户一次订阅多个频道,所以我认为多路复用是要走的路。问题是,当我想同时订阅4个以上的频道时,我会得到无穷无尽的CORS错误。订阅一个接一个的频道与之间的延迟没有任何区别。我有"流控制器"已启用扩展程序。

enter image description here

2 个答案:

答案 0 :(得分:0)

PubNub Presence用户状态数据

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,对于状态事件也是如此,因为它们只是在状态通道上发布的消息。

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

答案 1 :(得分:0)

我发现了一个问题。状态太大,它有用户详细信息,包括照片缩略图。它的大小约为6000个字符。它距离32kb还很远,我没有读到它的不同限制,它发生在我订阅至少5个频道时。是否存在一些场景逻辑背后的每个通道数量的状态倍增? 5 * ~6000接近32k的极限。