编码的包里面包含两部分
packet
payload
Packet
这是一个UTF-8编码的string or binary data。
Stirng <packet type id>[<data>] example 2probe
binary data: 当我们发送二进制数据的时候 type id 要是第一个字节, 剩下是实际的内容 4|0|1|2|3|4|5
packet type id:
0 open 向服务端发送一个创建新的传输连接
1 close 关闭当前的传输协议, 但并不关闭当前的socket 连接
2 ping 发送ping 包 example 2probe
3 pong 发送pong 包 example 3probe
4 message 表示发送的是消息
example server 发送 4HelloWorld
client 接收消息并回调 socket.on(‘message’, function(data) {console.log(data)})
5 upgrade
在服务器和客户端切换传输协议之前, 根据upgrade 发送的协议测试,如果成功就切换新传输协议
6 noop
主要使用在轮询升级到websocket时
example
1 client 创建新的连接和传输协议
2 client send 2probe
3 server send 3probe
4 client send 5
5 server 清理和关闭旧的传输协议,并切换到新的传输协议
Payload
由一组一组的<length1>:<packet1>这样的包组成, 不支持xhr2.
原文:http://www.cnphp6.com/archives/104855
转载于:https://blog.51cto.com/mingtangduyao/1857381