2016-09-30 200 views
1

我知道我沒有任何代碼顯示你們,我被困在某個點,我不知道從哪裏開始。我希望有人能幫助我。發送消息從服務器到所有客戶端

我正在開發一個Spring MVC應用程序,我需要向所有活動會話用戶發送一條消息,以執行一個腳本,該腳本可用於所有客戶端,因爲它是在js文件中定義的並且包含在每個用戶中。

我環顧四周,發現了一些框架,它提供了像Atmosphere這些類型的功能,但我不認爲它應該用在我的情況中,因爲它是一個大框架,所需功能很少。我也瀏覽了WebSockets,但我無法找到任何有助於我在客戶端爲所有客戶端調用腳本的內容。

如果有人能幫助我走向正確的道路或指引我到類似的例子。我將不勝感激

****更新**** 我也可以使用輪詢,如果有方式:如果控制器獲取請求會話應被視爲空閒期間,例如,有控制器每5分鐘呼叫一次,會話時間爲30分鐘。該會議將不會在這個時候到期,如果用於輪詢控制器被稱爲每隔5分鐘,我需要從計算空閒時間排除特定控制器

+0

約一個通用的老式Java解決方案的另一臺服務器的網址?相反,如果發送消息,您可以讓您的客戶端每隔X分鐘輪詢一次服務器端資源 – chrisl08

+0

我不能這樣做,這是第一個要求。 –

+0

轉出我可以使用投票,更新了問題。如果你能給出一個好的解決方案! –

回答

1

沒有輪詢解決方案: 從我所收集,你需要一個遠程過程調用機制。 我會去https://github.com/eriksank/rpc-websocket。 總體思路:

  1. 您的客戶以自己的服務器進程註冊爲「消費者」。
  2. 當一個消息準備就緒後,你的服務器會通過每一個註冊的「消費者」併發送消息,其中rpc-websocket可以處理。

投票解決方案:如果您已經註冊,登錄用戶 這是一個總體思路,工作。

  1. 有一個存儲消息的數據庫表,我們稱之爲「消息」。
  2. 有一個記錄消息和用戶的數據庫表,我們稱之爲「message_tracker」。如果用戶看到消息,則此表中將有一行用於messageId和UserID。
  3. 讓javascript腳本爲新消息輪詢服務器url。什麼是新消息可以根據上面的數據庫表來決定。
  4. 如果發現了新的消息,並處理,然後調用其插入到message_tracker數據庫表
如何
+0

謝謝你!它會爲我工作。 –

相關問題