2011-05-04 48 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