websocket的通信原理


首先什么是websocket? 

1.websocket和http一樣是一種通信協議,是HTML5的一種新的協議。
2.既然有了http協議了,為什么還會有websocket呢?是因為是為了彌補http的單向請求的缺陷的(http的請求只能由客戶端發起)
   舉例來說,我們想了解今天的天氣,只能是客戶端向服務器發出請求,服務器返回查詢結果。HTTP 協議做不到服務器主動向客戶端推送信息。
  這種單向請求的特點,注定了如果服務器有連續的狀態變化,客戶端要獲知就非常麻煩。我們只能使用"輪詢":每隔一段時候,就發出一個詢問,了解服務器有沒有新的信息。最典型的場景就是聊天室。
 輪詢的效率比較低,而且很浪費資源(因為必須不停的鏈接,或者http鏈接始終打開),為了解決這種問題,就出現了websocket。
3.websocket需要握手之后,才能進行彼此的通信
4.websocket的最大特點就是服務器可以主動的給客戶端推送消息,客戶端也可以主動向服務端發送消息,實現了雙向的平等對話,屬於服務器推送的一種。

           

websocket的其他特點:

1.建立在tcp協議之上,服務器端的實現比較容易
2.和http協議有着良好的兼容性,默認端口是80和443,並且握手階段采用HTTP協議,因此握手的時候不容易屏蔽,能通過各種的HTTP代理。
3.數據格式比較輕量,性能開銷小,通信效率高。
4.可以發送文本,也可以發送二進制數據。
5.沒有同源限制,客戶端可以與任意的服務器通信。
6.協議標識是ws(如果加密,是wss),服務器的網址就是url。

socket的通信方式:

            

 未完。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM