mozwebsocket数据包结构
什么是 MozWebSocket
firefox 二进制消息客户端 ->服务器数据包结构?
发送ArrayBuffer
(0x01 0x00 0x01
)。确实发送了0x88 0x82 0xE7 0xEB 0x20 0x30 0xE4 0x03
。前 2 个字节在不同的会话中不会改变(id 大小?)。 例如,这里是 chrome 二进制消息数据包结构 -
0x82
- id
0xYY
1bit - 被屏蔽了吗? 7位 - 数据长度
0xZZ oxZZ oxZZ oxZZ
- 4字节掩码
数据(掩码)
注意:Firefox 目前仅支持发送字符串。
好像没有办法使用firefox发送二进制数据?
What is the MozWebSocket
firefox binary message client -> server packet structure?
Sending ArrayBuffer
(0x01 0x00 0x01
). Really sent 0x88 0x82 0xE7 0xEB 0x20 0x30 0xE4 0x03
. First 2 bytes doesnt change on different sessions (id size?).
Here is for example chrome binary message packet structure -
0x82
- id
0xYY
1bit - is masked? 7bit - data length
0xZZ oxZZ oxZZ oxZZ
- 4 byte mask
data (masked)
Note: Firefox currently only supports sending strings.
Seems like there is no way to send binary data using firefox?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
目前只有 Chrome 支持发送二进制对象类型。 Firefox 尚不支持发送二进制类型。不过,Mozilla 正在解决该问题,因此 Firefox 版本中应该会提供支持很快。
Only Chrome currently supports sending binary object types. Firefox does not yet support sending binary types. However, Mozilla is working on the issue so there should be support in a Firefox release soon.
我相信数据包结构与 Chrome(或任何其他浏览器)的数据包结构相同。查看最新规范的数据框架部分 表明这是一条连接关闭消息:
0x88:前导 8 表明这是消息的最后一个片段。尾随 8 是连接关闭帧的操作码。
0x82:msb 显示消息包含掩码。其余 7 位表示发送的数据长度 - 在本例中为 2 个字节。
0xE7 0xEB 0x20 0x30:用于解码消息的掩码。
0xE4 0x03: 发送的消息 - (0xE4^0xE7) (0x03 ^ 0xEB) [ == 0xE7 0x0C 我认为]
假设您没有关闭客户端连接,您可以检查您的 Firefox 版本是否支持发送二进制文件消息。
I believe the packet structure is identical to Chrome's (or any other browser's). Looking at the data framing section of the latest spec suggests that this is a connection close message:
0x88: The leading 8 shows that this is the final fragment of the message. The trailing 8 is the opcode for a connection close frame.
0x82: The msb shows that the message contains a mask. The remaining 7 bits give the length of data sent - 2 bytes in this case.
0xE7 0xEB 0x20 0x30: The mask used to decode the message.
0xE4 0x03: The message sent - (0xE4^0xE7) (0x03 ^ 0xEB) [ == 0xE7 0x0C I think]
Assuming you aren't closing the connection client side, you could check whether your version of Firefox supports sending binary messages.