新网站不被收录邳州城乡建设局网站
一、WEBSOCKET的通信方式
 通过捕包可以知道,WEBSOCKET的通信至少经过如下两个阶段
 1、第一阶段是HTTP连接阶段
 由客户端连接服务器TCP端口,然后发出标准的HTTP GET请求。
 但这个GET请求里会带一个安全码Sec-WebSocket-Key。
GET / HTTP/1.1\r\n
Host: 192.168.120.33:8080\r\n
Connection: Upgrade\r\n
Upgrade: websocket\r\n
Sec-WebSocket-Version: 13\r\n
Sec-WebSocket-Key: tRbfQhJzXEBmQlEIjVyIDA==\r\n
\r\n
 
2、WEBSOCKET服务器要判断这个KEY,如果存在,就要获取下来
 以便于后续认证
 并回复101升级,同时带一个服务器的KEY:Sec-WebSocket-Accept
HTTP/1.1 101 Switching Protocols\r\n
Upgrade: websocket\r\n
Connection: Upgrade\r\n
Sec-WebSocket-Accept: a2TlOCxzgJ30SiwCycOC4A8CHCE=\r\n
\r\n
 
3、 这样双方就有了一个通信密钥交互结果
 在服务端给客户端发送数据时,会带一个WEBSOCKET的头:
 WebSocket
 0… … = Fin: False
 .000 … = Reserved: 0x0
 … 0010 = Opcode: Binary (2)
 0… … = Mask: False
 .111 1110 = Payload length: 126 Extended Payload Length (16 bits)
 Extended Payload length (16 bits): 4082
 Payload
头共32位。
 前16位,是选项位以及长度标识
 后16位,是长度
