首先什么是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的通信方式:

未完。。。
