Websocket原理及使用情境[轉載]

來源:互聯網
上載者:User

標籤:之間   服務   normal   通過   socket   時間   ip地址   head   連接埠   

WebSocket的使用情境

社交聊天、彈幕、多玩家遊戲、協同編輯、股票基金即時報價、體育實況更新、視頻會議/聊天、基於位置的應用、線上教育、智能家居等需要高即時的情境

由輪詢到WebSocket

1 輪詢

用戶端和伺服器之間會一直進行串連,每隔一段時間就詢問一次。用戶端會輪詢,有沒有新訊息。這種方式串連數會很多,一個接受,一個發送。而且每次發送請求都會有Http的Header,會很耗流量,也會消耗CPU的利用率。

2 長輪詢

長輪詢是對輪詢的改進版,用戶端發送HTTP給伺服器之後,有沒有新訊息,如果沒有新訊息,就一直等待。當有新訊息的時候,才會返回給用戶端。在某種程度上減小了網路頻寬和CPU利用率等問題。但是這種方式還是有一種弊端:例如假設伺服器端的資料更新速度很快,伺服器在傳送一個資料包給用戶端後必須等待用戶端的下一個Get請求到來,才能傳遞第二個更新的資料包給用戶端,那麼這樣的話,用戶端顯示即時資料最快的時間為2×RTT(往返時間),而且如果在網路擁塞的情況下,這個時間使用者是不能接受的,比如在股市的的報價上。另外,由於http資料包的頭部資料量往往很大(通常有400多個位元組),但是真正被伺服器需要的資料卻很少(有時只有10個位元組左右),這樣的資料包在網路上周期性的傳輸,難免對網路頻寬是一種浪費。

3  WebSocket

現在急需的需求是能支援用戶端和伺服器端的雙向通訊,而且協議的頭部又沒有HTTP的Header那麼大,於是,Websocket就誕生了!流量消耗方面,相同的每秒用戶端輪詢的次數,當次數高達數萬每秒的高頻率次數的時候,WebSocket消耗流量僅為輪詢的幾百分之一

WebSocket協議原理

Websocket是應用程式層第七層上的一個應用程式層協議,它必須依賴 HTTP 協議進行一次握手 ,握手成功後,資料就直接從 TCP 通道傳輸,與 HTTP 無關了。

Websocket的資料轉送是frame形式傳輸的,比如會將一條訊息分為幾個frame,按照先後順序傳輸出去。這樣做會有幾個好處:

1 大資料的傳輸可以分區傳輸,不用考慮到資料大小導致的長度標誌位不足夠的情況。

2 和http的chunk一樣,可以邊產生資料邊傳遞訊息,即提高傳輸效率。

WebSocket和Socket的區別與聯絡

首先,Socket 其實並不是一個協議。它工作在 OSI 模型會話層(第5層),是為了方便大家直接使用更底層協議(一般是 TCP 或 UDP )而存在的一個抽象層。Socket是對TCP/IP協議的封裝,Socket本身並不是協議,而是一個調用介面(API)。

Socket通常也稱作”通訊端”,用於描述IP地址和連接埠,是一個通訊鏈的控制代碼。網路上的兩個程式通過一個雙向的通訊串連實現資料的交換,這個雙向鏈路的一端稱為一個Socket,一個Socket由一個IP地址和一個連接埠號碼唯一確定。應用程式通常通過”通訊端”向網路發出請求或者應答網路請求。

Socket在通訊過程中,服務端監聽某個連接埠是否有串連請求,用戶端向服務端發送串連請求,服務端收到串連請求向用戶端發出接收訊息,這樣一個串連就建立起來了。用戶端和服務端也都可以相互發送訊息與對方進行通訊,直到雙方串連斷開

Websocket原理及使用情境[轉載]

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.