Meteor多标签共享状态

时间:2014-04-15 05:49:11

标签: node.js meteor sockjs

用户经常打开多个标签到我的meteor应用程序。有没有办法让这些选项卡共享相同的连接(服务器上的状态),以便没有多个冗余连接。我正在考虑提出一个自己做的包,我想知道是否有人对此有任何想法。它应该有助于提高绩效。

2 个答案:

答案 0 :(得分:3)

您应该可以使用HTML5 local storage。这个库就是这样做的:

https://github.com/diy/intercom.js

答案 1 :(得分:2)

可以通过localStorage共享客户端数据(将其视为浏览器数据库)。也可以通常通过数据库共享服务器端数据(在流星的情况下为MongoDB)。浏览器会自动在选项卡上共享网络连接(而不是收集)。

如果您的意思是共享集合(而不是连接),则无需在标签(客户端)之间共享任何特殊内容。观察同一集合的客户将看到相同的数据。

然而,Meteor提供的便利性有其成本。其中一个是each client has its own partial collection copy, thus it can use/waste lots of memory

这是实现细节,就像JavaScript如何使用/浪费更多内存和cpu然后更换本机代码以换取方便,你可以做的很少,至少不容易。

更新:正如Harry指出的那样,对于真正的DDP连接“共享”,可以检测并断开新选项卡并使用localStorage从第一个选项卡同步数据,这样只有一个活动连接。不过恕我直言,这将是一个非常英雄的壮举。