日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

(chap9 基于HTTP的功能追加协议) WebSocket使用浏览器进行全双工通信

發布時間:2025/3/21 HTML 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (chap9 基于HTTP的功能追加协议) WebSocket使用浏览器进行全双工通信 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 概念

利用Ajax和 Comet技術進行通信可以提升Web 的瀏覽速度。但問題在于通信若使用HTTP協議,就無法徹底解決瓶頸問題。WebSocket網絡技術正是為解決這些問題而實現的一套新協議及API。

  • 建立在HTTP基礎上的協議,即 Web 瀏覽器與 Web 服務器之間全雙工通信標準。
  • 連接的發起方仍是客戶端, 一旦確立WebSocket通信連接,不論服務器還是客戶端,任意一方都可直接向對方發送報文,包括JSON、XML、HTML或圖片等任意格式的數據。

2. 主要特點

2.1 推送功能

服務器可直接向客戶端推送數據,不必等等其請求。

2.2 減少通信量,首部信息很少

只要建立起WebSocket連接,就希望一直保持連接狀態,和HTTP相比,不但每次連接時的總開銷減少,而且由于WebSocket的首部信息很小,通信量也相應減少了。

2. 實現過程

為了實現WebSocket通信,在HTTP連接建立之后,需要完成一次“握手”(Handshaking)的步驟。

2.1 握手·請求

為了實現WebSocket通信,需要用到HTTP的 Upgrade首部字段,告知服務器通信協議發生改變,以達到握手的目的。

GET/chat HTTP/1.1 Host: server.example.comUpgrade: websocket Connection: Upgrade Sec-webSocket-Key : dGhlIHNhbXBsZSBub25jZQ==origin: http://example.com Sec-webSocket-Protocol: chat, superchatsec-webSocket-version: 13
  • Sec-WebSocket-Key
    字段內記錄著握手過程中必不可少的鍵值。
  • Sec-WebSocket-Protocol
    字段內記錄使用的子協議,子協議按 WebSocket協議標準在連接分開使用時,定義那些連接的名稱。

2.2 握手·響應

對于之前的請求,返回狀態碼101 Switching Protocols的響應。

HTTP/1.1 101 Switching ProtocolsUpgrade: websocket Connection: Upgrade Sec-webSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+x0o=Sec-webSocket-Protocol:chat

Sec-WebSocket-Accept的字段值是由握手請求中的Sec-WebSocket-Key的字段值生成的。
成功握手確立 webSocket連接之后,通信時不再使用HTTP的數據幀,而采用WebSocket獨立的數據幀。


2. 3. WebSocket API

JavaScript可調用“The webSocket API”( http://www.w3.org/TR/websockets/,由 W3C標準制定)內提供的 WebSocket程序接口,以實現 WebSocket協議下全雙工通信。

eg. 調用WebSocket API,每50ms發送一次數據的實例。

var socket = new webSocket ('ws://game.example.com:12010/updates'); socket.onopen = function ({ setInterval ( function(){ if (socket .bufferedAmount -= o) socket.send (getupdateData());},50); }

總結

以上是生活随笔為你收集整理的(chap9 基于HTTP的功能追加协议) WebSocket使用浏览器进行全双工通信的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。