2011-05-04 24 views
0

我已经实现了非常简单的应用程序,使用GWT和GWT事件服务1.1.1,它会发送一些信息到服务器,并等待特定事件回来。GWT事件者地位的浏览器同步的问题

当在一个浏览器窗口中打开应用程序时,它工作正常。

在一台机器上的两个浏览器窗口(相同的浏览器和相同的地址:localhost:port/app或ip:port/app)中打开它时,只有一个应用程序实例接收到事件(UI仅反映更改在一个窗口中)。

当在两个不同的浏览器打开,但具有相同地址(例如,两者都是本地主机:端口/应用程序),那么这两个浏览器接收事件。

当在同一浏览器的两个窗口被打开,但具有不同的地址(一个为localhost:端口/应用程序,第二个是IP:端口/应用程序),那么它也接收事件。

那么,有人可以提供任何解释这种行为?如果有这种问题的解决方法。

在此先感谢,亚历克斯 。

回答

4

您正在使用的服务器上gwt event service,对不对?

他们声称拥有“事件,只监听一个打开的连接”。所以他们主动检查一个客户端只有一个发送事件的连接。他们可能使用网络会话来实现这一点。

既然你打开两个标签相同的浏览相同的URL,这两个选项卡共享同一个会话。没有其他办法了。有很多关于这个问题:https://stackoverflow.com/search?q=browser+tabs+session

更新:

看来,GWT事件服务可以被配置为支持多个会话:使用SessionExtendedConnectionIdGenerator

更新2:

使用像这样的配置文件:http://code.google.com/p/gwteventservice/source/browse/trunk/conf/eventservice.properties?r=265

+0

谢谢,很高兴知道suc h的机会。但是,没有官方发布gwteventservice 1.2,我不确定是否可以使用trunk版本。顺便说一句,我应该把这个.properties文件放在我的战争中?谢谢。 – 2011-05-04 12:12:51

+0

报价:属性文件的位置必须连接到服务器端应用程序的classpath:https://code.google.com/p/gwteventservice/wiki/Configuration – 2011-05-04 12:23:51

+0

哦,是我不好,再次感谢您。你还可以提供一个提示,如何从他们的箱子里制造新的罐子? – 2011-05-04 15:34:29