2013-03-21 87 views
0

我對彗星實現有個疑問。我知道它用於處理類似於現在可以通過Servlet 3.0異步功能實現的異步請求。然而,我不明白的是如何推送到呼叫客戶端。彗星如何與客戶端一起工作

在Web套接字中,我們通過提供IP和端口來打開連接。有了彗星,當服務器推送數據時,如何連接服務器以接收回調?

回答

1

維基百科頁面上Comet (programming)是一個很好的資源,對於這個問題(對不起,這是如此明顯)。

Comet是一個使用HTTP來模擬客戶端和服務器之間的雙向連接的總稱。最終,您向服務器發出HTTP請求並嘗試保持其打開(長輪詢和流式傳輸)。通過長輪詢,連接在給定的時間間隔後或數據返回時關閉。通過流式傳輸,連接儘可能長時間處於打開狀態,新數據通過現有連接發送。

這些如何實現不同網頁瀏覽器 - 爲什麼彗星被歸類爲黑客。再次,維基百科頁面應該提供幾乎所有你需要的信息。

我寫了一篇文章,介紹實時網絡通信的歷史(重點介紹客戶端)以及爲什麼WebSockets are a game-changer

+0

Thx很多。我的問題是,長輪詢只是遞歸ajax調用,因此不同於websockets的權利?無論如何,這個wiki確實掩蓋了它,並感謝你的文章。也會經歷這一點。 – dinukadev 2013-03-23 06:21:32

+0

@dinukadev重要的是要記住,彗星不只是長時間投票 - 它們不是同義詞,因爲長時間投票只是彗星實現的方式之一。流式傳輸實際上是一種更好的解決方案,因爲連接保持開放,信息可以即時發送。通過長時間輪詢,有時候沒有建立連接,數據可能會過時(陳舊)。高興我可以幫忙。 – leggetter 2013-03-23 10:27:01