【发布时间】:2016-07-02 01:51:18
【问题描述】:
【问题讨论】:
标签: node.js websocket socket.io
【问题讨论】:
标签: node.js websocket socket.io
这就是Engine.io协议,你看到的数字就是数据包编码:
<packet type id>[<data>]
示例:
2probe
这些是不同的数据包类型:
0 个打开
打开新传输时从服务器发送(重新检查)
1 关闭
请求关闭此传输,但不关闭连接本身。
2 ping
由客户发送。服务器应该回复一个包含相同数据的 pong 数据包
示例 1. 客户端发送:2probe 2. 服务器发送:3probe
3 乒乓球
由服务器发送以响应 ping 数据包。
4 条消息
实际消息,客户端和服务器应该使用数据调用它们的回调。
示例 1
服务器发送:4HelloWorld
客户端接收并调用回调socket.on('message', function (data) { console.log(data); });
示例 2
客户端发送:4HelloWorld
服务器接收并调用回调socket.on('message', function (data) { console.log(data); });
5 升级
在 engine.io 切换传输之前,它会测试服务器和客户端是否可以通过此传输进行通信。如果此测试成功,客户端会发送升级包,请求服务器刷新旧传输上的缓存并切换到新传输。
6 晚
noop 数据包。主要用于在收到传入的 websocket 连接时强制轮询周期。
例子
客户端通过新的传输连接 客户端发送 2probe 服务器接收和发送3probe 客户端接收和发送 5 服务器刷新并关闭旧传输并切换到新传输。
您可以阅读完整文档here
【讨论】: