据我所知,Websocket是基于消息的协议,并使用TCP作为传输层。但是TCP本身是基于流的协议。有人可以解释
如果我有任何误解,请纠正我。
答案 0 :(得分:1)
要通过TCP发送特定的数据格式(例如webSocket框架),只需定义数据格式,以便流的读取者根据格式知道帧的开始和结束位置。一种典型的方法是发送一组数据,该数据包括固定大小(预先已知)的标头格式,该格式包含总帧的长度,然后发送该长度的其余帧。然后,阅读器可以读取初始的固定大小数据,从中读取长度,然后知道要读取多少以获得完整的帧。
Websocket中的框架是什么?
您可以了解整个webSocket框架here,下面是webSocket框架的结构。
Frame format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-------+-+-------------+-------------------------------+
|F|R|R|R| opcode|M| Payload len | Extended payload length |
|I|S|S|S| (4) |A| (7) | (16/64) |
|N|V|V|V| |S| | (if payload len==126/127) |
| |1|2|3| |K| | |
+-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
| Extended payload length continued, if payload len == 127 |
+ - - - - - - - - - - - - - - - +-------------------------------+
| |Masking-key, if MASK set to 1 |
+-------------------------------+-------------------------------+
| Masking-key (continued) | Payload Data |
+-------------------------------- - - - - - - - - - - - - - - - +
: Payload Data continued ... :
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Payload Data continued ... |
+---------------------------------------------------------------+
在Websocket中使用消息有什么优势?
目前还不清楚您要问什么。使用webSocket连接的原因包括: