特征
-
建立在tcp协议之上
-
与http协议良好兼容,握手阶段采用http协议
-
全双工通信协议,采用异步回调方式接受信息。
-
长连接,当客户端需要短时间请求多次,保持tcp连接不断开
-
长轮询,客户端发起超时很长的请求,服务器保持连接,直到数据准备好
示例
1、请求报文
GET wss://www.example.cn/webSocket HTTP/1.1
Host: www.example.cn
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Version: 13
Origin: http://example.cn
Sec-WebSocket-Key: afmbhhBRQuwCLmnWDRWHxw==
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
2、响应报文
HTTP/1.1 101
Server: nginx/1.12.2
Date: Sat, 11 Aug 2018 13:21:27 GMT
Connection: upgrade
Upgrade: websocket
Sec-WebSocket-Accept: sLMyWetYOwus23qJyUD/fa1hztc=
Sec-WebSocket-Protocol: chat
Sec-WebSocket-Extensions: permessage-deflate;client_max_window_bits=15