2013-11-28 41 views
0

問題從服務器發送數據與Java EE 6的客戶

我們有一個客戶端 - 服務器應用程序,服務器端爲Glassfish的3.1.2。這個應用程序有許多用戶,以及許多模塊(例如查看交易,查看銀行等)。在服務器上運行的客戶端調用了一些長時間運行的進程。目前我們還沒有找到一個很好的解決方案來向用戶展示服務器端正在發生的事情。我們希望用戶以給定的頻率從服務器獲取更新的消息。你會建議使用什麼?

我們所做/試過

  1. 我們(獨立)使用的方法與Singleton豆和客戶端ID的Map類似this,和它的作品,當然。但在服務器端,每個方法doSomething(Object... vars)必須轉換爲doSomething(Object... vars, String clientID)或任何ID類型。客戶端每秒鐘從服務器提取一次數據。我想避免在服務器和客戶端之間添加外觀。

  2. 我在考慮JAX-WS或JAX-RS,但我對這些技術並不熟悉,也不確定他們能做什麼。

  3. 套接字

我要指出,在服務器端,我們只有無狀態bean(有一個原因),這就是爲什麼我沒有提到使用狀態bean(這是我認爲非常好的候選人)。

問候,奧列格

+0

客戶端是Web應用程序嗎?你管理服務器端客戶端會話嗎? – remigio

+0

不,@remigio,客戶端不是網絡,它在Swing上。是的,我們也管理服務器端。 – Oleg

回答

0

的WebSocket可能是一個合適的選擇,它允許服務器主動提供的數據發送給客戶,沒有強耦合的,你只需要存儲客戶端ID到客戶端連接映射到正在運行的任務,並能夠將更新推送到正確的連接。 客戶端ID /套接字連接映射可以使用內存中結構(即哈希映射)或永久數據存儲在單一bean中維護,以實現可伸縮性目的,或者您需要強大的解決方案。 更好地理解WebSocket技術的一些有用鏈接是thisthis

+0

謝謝@remigio!我會嘗試你的建議 – Oleg

相關問題