使用氛围

时间:2015-10-22 21:30:08

标签: java atmosphere

我正在使用Atmosphere RC 2.4.5(java 1.8,jsp,tomcat 8和javascript Atmosphere客户端)将消息从服​​务器推送到客户端。一切都按预期工作,并没有实现它的任何麻烦,但现在我怀疑下一件事:

我实施了一项功能,管理员用户可以向当前使用该应用的所有用户发送一些通知。但是,如果在消息通过Web套接字的那个确切时间内,某些用户单击了链接并开始导航到另一个页面。他的网络插座将被关闭,他永远不会收到消息。

有谁知道如何使用大气来实现这一目标,因此不会丢失任何消息。

谢谢大家。

1 个答案:

答案 0 :(得分:1)

您可以在atmosphere-js的文档中找到基于此页面的解决方案:

Sharing connection between Browser's windows and tabs

  

默认情况下,每次浏览器打开新窗口或选项卡时,atmosphere.js库都会打开一个新连接(基于可用的传输:websocket,long-polling,streaming,sse,jsonp或ajax)。在某些情况下,共享窗口/选项卡之间的连接可能更有效。要启用该机制,您需要做的就是设置AtmosphereRequest对象的共享属性:

以下是示例:

var request = new $.atmopshere.AtmosphereRequest();
request.shared = true;
request.transport = 'websocket'
$.atmosphere.subscribe(request);

其中一行可以解决您的问题:

request.shared = true;