Http 長輪詢的實現

輪詢

  • 輪詢:客戶端定時向服務器發送Ajax請求,服務器接到請求後立刻返回響應信息並關閉鏈接。
  • 優勢:後端程序編寫比較容易。
  • 缺點:請求中有大半是無用,浪費帶寬和服務器資源。
  • 實例:適於小型應用。

長輪詢的實現

  • 長輪詢:客戶端向服務器發送Ajax請求,服務器接到請求後hold住鏈接,直到有新消息才返回響應信息並關閉鏈接,客戶端處理完響應信息後再向服務器發送新的請求。
  • 優勢:在無消息的狀況下不會頻繁的請求,耗費資源小。
  • 缺點:服務器hold鏈接會消耗資源,返回數據順序無保證,難於管理維護。
  • 實例:WebQQ、Hi網頁版、Facebook IM。

長鏈接

  • 長鏈接:在頁面裏嵌入一個隱蔵iframe,將這個隱蔵iframe的src屬性設爲對一個長鏈接的請求或是採用xhr請求,服務器端就能源源不斷地往客戶端輸入數據。
  • 優勢:消息即時到達,不發無用請求;管理起來也相對方便。
  • 缺點:服務器維護一個長鏈接會增長開銷。
  • 實例:Gmail聊天

Flash Socket

  • Flash Socket:在頁面中內嵌入一個使用了Socket類的 Flash 程序JavaScript經過調用此Flash程序提供的Socket接口與服務器端的Socket接口進行通訊,JavaScript在收到服務器端傳送的信息後控制頁面的顯示。
  • 優勢:實現真正的即時通訊,而不是僞即時。
  • 缺點:客戶端必須安裝Flash插件;非HTTP協議,沒法自動穿越防火牆。
  • 實例:網絡互動遊戲。
相關文章
相關標籤/搜索