簡介WebSocket

簡介WebSocket

WebSocket是一種網路傳輸協定,可在單個TCP連接上進行雙向溝通。

有HTTP為什麼還需要WebSocket?

1
2
3
4
5
6
7
8
HTTP Protocol 有個缺點,request只能由client發起。
舉例來說,今天想要查某支股票的資訊,在HTTP的世界中,只能用瀏覽器(client)向Server請求某支股票的資訊。
HTTP無法做到由Server主動推送訊息給client。

這種單向請求的特性,若Server端有連續的狀態變化,client要知道訊息就非常繁瑣,只能用pooling的方式
每隔一段時間就發出request來確認server有沒有新的資料。

pooling的效率低,耗資源,造就工程師思考出更好的方法。WebSocket就是這樣被發明的。

WebSocket優點&特色

1
2
3
4
5
6
7
8
9
10
WebSocket最大優點是,server可以主動向client推送資料,client也可以主動向server發送資料,是真正的雙向溝通。
其他特色包含以下:
1.建立在TCP Protocol之上,在Server上實作較容易。
2.與HTTP Protocol有著良好的相容性。預設port是80和443,且Handshake採用HTTP Protocol,因此Handshake時,能通過各種HTTP proxy server。
3.資料輕量化,耗效能小。
4.可以推送text data,也可以推送binary data。
5.没有Same Origin Policy,client可以與任何server溝通。
6.Protocol開頭符號是ws,(如果加密,則為wss)。

example:ws://example.com/some/path