我已经使用gwt和gwt事件服务1.1.1实现了非常简单的应用程序,它将一些信息发送到服务器并等待特定事件返回。
在一个浏览器窗口中打开应用程序时,它可以正常工作。
在一台计算机上的两个浏览器窗口(相同的浏览器和相同的地址:localhost:port / app或ip:port / app)中打开它时,我的应用程序只有一个实例接收事件(UI仅反映了一个窗口)。
当它在两个不同的浏览器中打开,但具有相同的地址(例如,两者都是localhost:port / app)时,两个浏览器都会收到事件。
当它在同一个浏览器的两个窗口中打开,但是有不同的地址(一个是localhost:port / app,第二个是ip:port / app),那么它也会收到事件。
那么,有人可以对这种行为作出任何解释吗?如果有这种问题的某种解决方法。
提前致谢, 亚历克斯。
答案 0 :(得分:4)
您在服务器上使用gwt event service,对吗?
他们声称“只有一个开放的连接用于事件监听”。因此,他们主动检查一个客户端只有一个连接用于发送事件。他们可能会使用网络会话来实现这一目标。
由于您在两个选项卡中的相同浏览中打开相同的URL,因此这两个选项卡共享同一会话。没有其他办法了。关于此问题有很多问题:https://stackoverflow.com/search?q=browser+tabs+session
<强>更新强>
似乎gwt-event-service可以配置为支持多个会话:使用SessionExtendedConnectionIdGenerator
更新2:
使用如下配置文件:http://code.google.com/p/gwteventservice/source/browse/trunk/conf/eventservice.properties?r=265