web及時通訊傳輸的幾種方法

有哪些: 輪詢、長輪詢、iframe流、websocket前端

輪詢:http的請求有一個很明顯的缺點,就是隻能有客戶端發起,不能由服務端主動推送,因此輪詢就是定時向服務器發送請求,去獲取數據web

   優勢:傳輸簡單,易操做服務器

           缺點: 輪詢的時間過長致使數據傳輸不及時,輪詢時間太短致使請求過多,消耗流量和CPU利用率;websocket

           舉例: 前端使用定時器向服務端發送請求,響應成功後將數據展示給用戶。網絡

   原理圖:socket

      

 

長輪詢:長輪詢是對輪詢的一種改進,對於輪詢來講,每一次向服務端請求數據,不管服務端和有沒有給新數據,都先返回給客戶端,過一下子再來,而長輪詢就是,客戶端定時向服務端發送請求,若是發現有新數據,blog

               就拿着數據回去而後開始新一輪請求,若是沒有新數據傳來,就一直等,知道等到響應週期結束,即請求超時,而後再進行新一輪的請求。小結:請求成功後發送新一輪請求,請求超時也發送新一輪請求。ip

     優勢:改進了輪詢不斷髮送請求的資源浪費的缺點,相比於輪詢,具備更好的時效性。資源

          缺點: 在服務端沒有給出新消息的時候,始終保持着鏈接,會一直消耗流量資源。iframe

    原理圖:

      

 

iframe流:輪詢和長輪詢都是直接依靠JavaScript,不須要DOM配合就能夠完成一次請求,而iframe流跟他們不同,他的原理是在頁面上放一個隱藏的iframe元素,經過iframe的src屬性與服務器創建長鏈接,

      服務器以此來向客戶端傳輸數據,以達到實時更新數據的目的。

           優勢:實時通信效果較好

           缺點:長時間與服務器進行鏈接,會很浪費網絡資源。

websocket: 基於http協議創建的,因此首次的聯繫創建者必須仍是客戶端,但在鏈接以後,不管是服務端仍是客戶端均可以向對方發送任意格式的數據。

     特色: 支持雙向通訊,實時性更強,能夠發送多種數據類型;減小通訊量,只要創建起websocket鏈接,就能夠一直髮送消息;

          缺點: 不支持斷開鏈接;

相關文章
相關標籤/搜索