每日靈魂一問-對WebSocket的理解?應用場景?

是什麼

WebSocket,是一種網絡傳輸協議
可在單個TCP鏈接上進行全雙工通訊
服務器與客戶端都能主動的向對方發送或接受數據web

特色

1.全雙工
2.二進制幀
3.協議名
引入ws和wss分別表明明文和密文的websocket協議
4.握手:要有一個握手過程服務器

格式

客戶端發送的格式websocket

GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket // 必須設置Websocket,表示但願升級到Websocket協議 
Connection: Upgrade //必須設置Upgrade,表示客戶端但願鏈接升級
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== // 客戶端發送的一個 base64 編碼的密文,用於簡單的認證祕鑰
Origin: http://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13 // 持的Websocket版本

服務端返回的數據格式:網絡

HTTP/1.1 101 Switching Protocols // 表示服務端接受 WebSocket 協議的客戶端鏈接
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=Sec- //驗證客戶端請求報文 把請求頭裏「Sec-WebSocket-Key」的值,加上一個專用的 UUID
WebSocket-Protocol: chat

優勢

1.較少的控制開銷, 數據包頭部協議較小, 不一樣於http每次請求須要攜帶完整的頭部
2.更強的實時性
3.保持創鏈接狀態 建立通訊後,可省略狀態信息
4.更好的二進制支持
5.支持擴展:用戶能夠擴展websocket協議、實現部分自定義的子協議
6.更好的壓縮效果,提升壓縮率socket

應用場景

實時場景:彈幕 媒體聊天 協同編輯網絡傳輸協議

相關文章
相關標籤/搜索