<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## web通訊的幾種方式 * AJAX輪詢/短輪詢 * 長輪詢 * http流/長連接 * websocket * socket.io Ajax輪詢/短輪詢 Ajax輪詢,這是最早的一種實現實時 Web 應用的方案。客戶端以一定的時間間隔向服務端發出請求,以頻繁請求的方式來保持客戶端和服務器端的同步,服務器收到請求后馬上返回響應信息給客戶端并關閉連接。。 優點:功能實現簡單,程序編寫比較容易。 缺點:瀏覽器需要不斷的向服務器發出請求,然而HTTP請求可能包含較長的頭部,其中真正有效的數據可能只是很小的一部分,顯然這樣會浪費很多的帶寬等資源(每一次的請求和應答都帶有完整的HTTP頭信息,增加了傳輸的數據量)。 實例:一般用在實時性要求不高的地方,適用于小型應用。 長輪詢 長輪詢是服務器收到請求后如果有數據,則立刻響應請求;如果沒有數據就會 hold 一段時間,這段時間內如果有數據立刻響應請求;如果時間到了還沒有數據,則響應 http 請求;瀏覽器收到 http 響應后立即再發送一個同樣http 請求查詢是否有數據。 優點:在無消息的情況下不會頻繁的請求,節省了網絡流量,耗費資源小。 缺點:服務器端對同一服務器同時http 連接有最大限制,最好同一用戶只存在一個長輪詢。服務器端沒有數據hold連接會消耗資源,需要同時維護多個線程。 實例:WebQQ、Hi網頁版、Facebook IM。 短輪詢和長輪詢,都會hold一段時間,不同的是短輪詢是在客戶端間隔一段時間發送請求;長輪詢是在服務器端hold一段時間返回響應。 http流/長連接 http流也叫長連接,它不同于短輪詢和長輪詢,指的是在頁面整個生命周期內只使用一個HTTP連接,即頁面向瀏覽器發送一個請求,服務器保持tcp連接打開,然后不斷向瀏覽器返回數據。 在http流方式中,使用Forever Iframe (永存的Iframe)技術,該技術涉及了一個置于頁面中的隱藏Iframe標簽,將這個隱藏的iframe 的src 屬性設為對一個長連接的請求,服務器端就能源源不斷地往客戶端返回數據。 優點:消息即時到達,不發無用的請求;管理起來也相對方便。 缺點:服務器維護一個長連接會增加開銷,Iframe標簽在瀏覽器中被逐步取消使用。 實例:Gmail聊天。 Adobe? Flash? Socket Adobe? Flash? Socket,大部分PC瀏覽器都支持的socket模式,在頁面中嵌入一個使用了Socket類的 Flash程序,javascript通過調用Flash程序提供的Socket接口與服務器端的Socket接口進行通信,javascript在收到服務器端傳送的信息后控制頁面的顯示。 優點:實現真正的即時通信,而不是偽即時。 缺點:客戶端必須安裝Flash插件;非HTTP協議,無法自動穿越防火墻。 實例:網絡互動游戲。 Websocket WebSocket是HTML5規范發布的新協議,和http協議是兩個不同的概念,或者說基本沒有關系。它們之間唯一的聯系點在于,WebSocket在建立握手連接時,數據是通過http協議傳輸的。但是在建立連接之后,真正的數據傳輸階段是不需要http協議參與的。 WebSocket實現了一次連接,雙方通信的功能。首先由客戶端發出WebSocket請求,服務器端進行響應,實現類似TCP握手的動作。這個連接一旦建立起來,就保持在客戶端和服務器之間,兩者之間可以直接的進行數據的互相傳送。 優點:服務器可以主動向客戶端推送信息,客戶端也可以主動向服務器發送信息,是真正的雙向平等對話。數據格式比較輕量,性能開銷小,通信高效。握手階段采用 HTTP 協議,因此握手時不容易屏蔽,能通過各種 HTTP 代理服務器。 缺點:WebSocket 只有在支持HTML5的瀏覽器中使用,很多地方需要自己手寫,比如斷開重連。 點擊查看關于WebSocket的詳細介紹及使用node.js完成即時通訊案例。 socket.io Socket.io將Websocket 和輪詢 (Polling)機制以及其它的實時通信方式封裝成了通用的接口,并且在服務端實現了這些實時機制的相應代碼。在支持HTML5的環境下,socket.io 底層的實現機制就是websocket。也就是說,Websocket 僅僅是 Socket.io實現實時通信的一個子集,工作中,優先使用socket.io。 socket.io能實現的功能: socket.io可以實現即時通訊和聊天。 可以來回發送任何二進制流的圖像/音頻和視頻。 實現實時數據統計分析。 允許用戶同時在線編輯文檔并查看彼此的更改。 特點:用法簡單、兼容性好、支持跨平臺、兼容低版本瀏覽器,注重可靠性和速度。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看