2013-02-06 25 views
1

我正在編寫一個Struts 2應用程序。在視圖中,我有一個觸發動作的按鈕。該操作調用Runtime.exec來啓動進程。此過程創建一個套接字,通過它發送狀態更新(以簡單的分隔文本字符串的形式)。我希望這些狀態更新能夠反映在視圖中。Struts2推送通知/ WebSocket交互最佳實踐

我知道如何在服務器端編寫套接字,但我不清楚在何處合併它以及如何在客戶端在套接字上發送數據時更新JSP。

我在哪裏放置服務器套接字:在偵聽器線程中還是在啓動進程的動作類中?

一旦我有狀態更新,什麼是更新頁面的最佳方式?

此外,我想更新,而不是刷新頁面 - 我假設爲此使用AJAX。

+4

您可以使用AJAX輪詢服務器,或使用websockets。告訴我們你的嘗試,以及你有什麼困難。我確實會在另一個特定的線程中監聽服務器套接字。 –

+0

你的具體目標是什麼? –

+0

我的具體目標是使用套接字上收到的狀態更新來更新視圖。所以如果這個過程正在加載,那麼接口也會這麼說。這將是從服務器到接口的推動。 – Bizmarck

回答

1

我無法得到這個與Struts 2一起工作,因爲過濾器不能很好地與我使用Atmosphere構建的servlet搭配使用。基本上我使用Meteor pub示例here,並修改了servlet以適合我們的應用程序。

另外,dojo toolkit支持websockets。我沒有測試過這個,但它看起來也可能是一個解決方案。