2012-02-08 41 views

回答

3

您可以檢查出gwteventservice。它聲稱有辦法推送服務器事件並通知客戶端。

我有一種感覺,他們可能被實現爲長時間運行(掛起)客戶端到服務器RPC調用超時間隔(例如20秒),然後重新制定。如果在此期間發生事件,服務器將返回回調。

我沒有親自使用它,但知道使用它將事件推送到客戶端的人。看看docs。如果我的假設是正確的,這個想法是發送一個RPC調用到不返回(掛起)的服務器。如果服務器上發生事件,則服務器響應,並且該RPC調用返回該事件。如果沒有事件,該呼叫將在20 seconds超時。然後,以相同方式掛起的服務器進行新的調用,直到發生事件。

這實現的目的是將每個事件(如果有的話)或者每20秒鐘一次的呼叫次數(如果沒有的話)減少到服務器的調用次數。它看起來可以配置20秒的時間間隔。

我想如果沒有事件發回的數據量是最小的 - 可能完全取消回調,或沒有數據傳輸失敗,但我真的不知道。

這裏是ServerPush另一種資源 - 這很可能什麼用gwteventservice實現。

+0

有關服務器推小問題。它的理念是始終送話費,但只有當有變化,正確返回的東西? – javaNoober 2012-02-08 23:40:24

+0

我已經更新了我的答案。從本質上說,當事情發生在服務器上,你應該只得到一個事件/響應。 – 2012-02-09 00:02:37

1

如果您需要客戶端從服務器獲取狀態,那麼您幾乎不得不打電話到服務器以獲取其狀態。

  • 你可以考慮減少的部分郵件
  • 你可以迴風定時器的大小,這樣的狀態通話撥出不常
  • 你可以「優化」,使計時器被複位時一些其他的客戶端/服務器IO發生了(例如,如果服務器回覆,你知道它是好的,所以你不需要發送下一個狀態請求)。
+0

酷,簡單的回答,並沒有告訴我使用其他技術,並指示我不是瘋了XD – javaNoober 2012-02-08 23:21:22

相關問題