2014-07-03 47 views
5

当我使用原生的WebSocket API我能看到的只是一个有效载荷在我的铬控制台sockts: enter image description here这些数字在socket.io有效载荷中意味着什么?

但是当我使用socket.io他们而发出事,我可以在我的实际有效载荷之前看到一些陌生号码。我明白,颜色意味着你要么发送或接收数据,但像42, 3, 2, 430, 420, 5这样的数字是什么意思。

有没有一个地方,我可以得到这些数字的完整列表与描述?

enter image description here

产生它是一种大的代码,所以我只是张贴小片段。

客户端总是这个样子:

socket.emit('joinC', room, function(color){ ... });

服务器端是这样的:

io.sockets.in(room).emit('moveS', {...});

回答

4

的WebSockets允许你发送数据来回全双工通信渠道。

另一方面,Socket.IO是一个实时应用程序框架,它使用websockets作为传输添加功能,如命名空间连接,房间,回退到其他传输等。要构建所有这些功能,前后交换的消息必须提供一些语义,以便Socket.IO知道它的意义(即它是什么类型的消息,事件,错误等)以及如何处理它们。为此,它使用一个,将消息与一些代码进行结构化,以识别它的语义。这就是你用这些数字看到的。

不幸的是,Socket.IO文档非常简洁,很难准确理解这些代码是如何组合和解析的。为了获得它们的确切含义,我认为需要看一下Socket.IO源代码。

EDITsocket.io Github issue

这socket.io解析器和engine.io解析器,分别为socket.io协议和engine.io协议的实现方式进行处理。您可以找到socket.io here和engine.io here的协议描述。

查看通过传输发送的实际数据时,这些文档中的编码部分很有用。 socket.io协议处理元数据的编码,比如namespaes到engine.io-protocol可处理的格式。

+0

我不认为有任何文件,至少没有我能找到。这就是为什么在我最后一段中我提到过,可能需要查看源代码来理解它们的含义。一种解决方案是在项目的GitHub页面上打开一个问题,并要求其中一个开发者提供一些样本的细节。 – Bogdan

+0

你怎么能用排放产生payloaded的消息?只是试图重现,但我给的所有消息都只是一个简单的消息,而不是付费的。 – mudlee