WebSocket消息旁边的数字代码是什么意思?

wmtdaxz3  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(130)

我刚刚完成了简单的聊天客户端socket.io教程,我正在使用Chrome WebSocket检查器检查浏览器和Node.js服务器Web Socket之间的消息。在我下面的截图中描述的消息之前有数字前缀。


的数据
正如你所看到的,有一些消息只有'2'和'3',在我的发射旁边有42个来回。这是什么意思?是否有一个我应该熟悉的主要消息类型的列表,以便我可以学习调试Web Sockets?

vaqhlq81

vaqhlq811#

Duplicate question.由于注解中说您的WebSocket消息中的数字代码不是Websocket的一部分,它们是由socket.io库添加的。
数字的意义在engine.io protocolsocket.io protocol中找到,并在other answers中描述

engine.io协议

所以你说的“只有2”和“只有3”就是“乒”和“乓”
以下是可用数据包类型的列表:
| 识别码|使用情况| Usage |
| --|--| ------------ |
| 0个|在握手时使用。||
| 一个|用于指示可以关闭传输。||
| 二个|用于心跳机制。||
| 三个|用于心跳机制。||
| 四个|用来向另一边发送有效载荷。||
| 五个|在升级过程中使用。||
| 六个|在升级过程中使用。||

socket.io协议

因此,您所描述的“42”是engine.io 4(表示“消息”)和socket.io 2(表示“事件”)的组合。
以下是可用数据包类型的列表:
| 识别码|使用情况| Usage |
| --|--| ------------ |
| 0个|在连接到命名空间期间使用。||
| 一个|在从命名空间断开连接时使用。||
| 二个|用于向另一方发送数据。||
| 三个|用于确认事件。||
| 四个|在连接到命名空间期间使用。||
| 五个|用于向另一端发送二进制数据。||
| 六个|用于确认事件(响应包括二进制数据)。||

相关问题