2009-05-04 88 views
0

我正在使用tomcat作爲web服務器和java swing應用程序的應用程序。作爲唯一通過web服務與客戶端進行通信的客戶端。Tomcat更新事件

我被困在一種情況,我需要服務器以某種方式通知客戶端某種更新的事件發生在服務器端。像反向ajax或類似的東西。

任何想法...

阿卜杜勒·哈利克

回答

0

最常見的方法將是您的客戶端輪詢服務器。這意味着定期向服務器發出要求新事件的請求。這會在事件的出現和它向客戶的通知之間引入延遲。

另一種方法是從客戶端發出HTTP請求並將其保持打開狀態,直到出現事件。這種方式通知在事件發生後立即到達。當事件被報告時,您發出另一個請求。這種方法的缺點是,它大大限制了服務器隨時可以服務的客戶端數量。 Tomcat線程的默認值爲150.對於每個http請求,您都需要一個線程,因此不能有超過150個打開的請求。

+0

請注意,新的tomcat具有註釋支持,它應該更有效地處理長輪詢,而不浪費線程。 – 2009-05-04 10:37:07