优势
- 服务端推送
- 减少通讯量,WS的首部信息很小
Websocket 传输基于 TCP 协议。首先会使用 HTTP 做初始握手,比如
GET ws://localhost:3000/ws/chat HTTP/1.1
然后服务器返回 101 表示可以切换到 websocket 协议。
双方使用 ping-pong 保持连接。
为什么不用HTTP做全双工通讯?
TCP 本身是全双工的,但是 HTTP 需要 请求和应答 机制限制了全双工。
Websocket 传输基于 TCP 协议。首先会使用 HTTP 做初始握手,比如
GET ws://localhost:3000/ws/chat HTTP/1.1
然后服务器返回 101 表示可以切换到 websocket 协议。
双方使用 ping-pong 保持连接。
TCP 本身是全双工的,但是 HTTP 需要 请求和应答 机制限制了全双工。