2009-01-29 134 views
10

是否有一種通用的方法來實現JavaScript應用程序的一部分併爲服務器提供持久連接?無論客戶端在防火牆後面,我都需要服務器能夠將數據推送到客戶端。在此先感謝與客戶端的持久連接

回答

13

請參閱Comet - 這就像ajax,但它保持連接打開,以便服務器可以將信息推送到客戶端。

請注意,符合標準的瀏覽器將僅保留2個連接(注意:most modern browsers no longer comply)到特定域(默認情況下),因此您可能需要拆分域(例如www.yourdomain.com和comet.yourdomain.com)您不會顯着減慢頁面的加載速度。或者,您可以確保直到其他所有內容加載完畢才能打開彗星連接。這只是要小心的事情。

2

隨着HTTP,連接必須從客戶端開始。但有一些技術可以讓服務器保持連接打開並根據需要刷新數據。

這些通常被認爲是CometHTTP Streaming體系結構。

2

您可以使用Comet編程技術。基本上,頁面調用服務器,直到服務器有東西要發送(此時客戶端立即進行相同的調用)纔會返回。這樣服務器就可以隨時將內容推送到客戶端。

支持因平臺而異,更多的是服務器問題,而不是客戶端。