为什么通过websockets传递的邮件始终以\x00
开头,以\xff
结尾,如\x00Your message\xff
所示?
答案 0 :(得分:3)
这documentation可能会有所帮助......
摘自第1.2节: -
Data is sent in the form of UTF-8 text. Each frame of data starts
with a 0x00 byte and ends with a 0xFF byte, with the UTF-8 text in
between.
The WebSocket protocol uses this framing so that specifications that
use the WebSocket protocol can expose such connections using an
event-based mechanism instead of requiring users of those
specifications to implement buffering and piecing together of
messages manually.
To close the connection cleanly, a frame consisting of just a 0xFF
byte followed by a 0x00 byte is sent from one peer to ask that the
other peer close the connection.
The protocol is designed to support other frame types in future.
Instead of the 0x00 and 0xFF bytes, other bytes might in future be
defined. Frames denoted by bytes that do not have the high bit set
(0x00 to 0x7F) are treated as a stream of bytes terminated by 0xFF.
Frames denoted by bytes that have the high bit set (0x80 to 0xFF)
have a leading length indicator, which is encoded as a series of
7-bit bytes stored in octets with the 8th bit being set for all but
the last byte. The remainder of the frame is then as much data as
was specified. (The closing handshake contains no data and therefore
has a length byte of 0x00.)
答案 1 :(得分:2)
工作规范已更改,不再使用0x00和0xFF作为开始和结束字节
http://tools.ietf.org/id/draft-ietf-hybi-thewebsocketprotocol-04.html
答案 2 :(得分:0)
我对此并不是100%肯定,但我的猜测是表示信息的开头和结尾。由于x00是0的单字节表示,xFF是255
的单字节表示