這個問題是這個問題真的很相似:What is the difference between web sockets, long polling, server-sent events and forever frame?Forever-frame和服務器發送的事件有什麼區別?
然而,這個問題的答案並沒有提到SSE和永遠幀之間的差異。
讓我給你簡單的解釋一下。
關於SSE,系統真的很像Comet,但與Comet不同的一點是數據發送後沒有斷開連接。 因此,從服務器到客戶端的連接是長期存在的,客戶端接收整個數據的一系列片段。
另一方面,永遠的框架似乎與我非常相似。在Forever框架中,首先客戶端收到包含iframe標籤的頁面,在隱藏的iframe內建立一個長期連接。然後客戶端接收來自服務器的分塊數據,並在客戶端已有的第一個文檔中使用一些功能來操作DOM。
我假設區別是Forever-frame在機制中使用iframe標記,但SSE不能和SSE可以通過更多方式實現。 我對不對?
感謝您對這些技術的概述。但是,在某些方面仍然不明確。 1:我不確定長輪詢和XHR輪詢之間的區別。我搜索了「XHR輪詢」一詞,但我找不到任何有關它的好消息。正如您所提到的,不同之處在於,長輪詢使用XMLHttpRequest1,其中XML輪詢執行XMLHttpRequest2嗎? 2:在XHR輪詢時,哪一方是從readyState發出的信號?從服務器端?還是客戶? 3:你是什麼意思的「自動重新連接」?這意味着服務器發送數據後,連接是否中斷一次? –
@KazuyaTomita是不是太厚臉皮建議買我的書 - 有足夠的空間來覆蓋這些主題徹底:-) 正常長輪詢和之間有什麼區別,我稱之爲「XHR」被前者只是使用的readyState == 4,而後者使用readyState == 3。 readyState是客戶端JavaScript XMLHttpRequest2 API的一部分。 –
因此,您對關於答案的長輪詢和XHR輪詢的解釋的陳述是錯誤的,因爲兩者都根據您的其他評論使用XMLHttpRequest2?如果沒關係,請給我任何關於question3的簡要解釋。 –