Websocket协议是否管理大数据块的发送

时间:2019-07-06 06:46:36

标签: websocket

大家好,我只是想知道websocket协议是否已经处理了大数据块的发送。至少知道这样做确实可以节省我自己的时间。

2 个答案:

答案 0 :(得分:1)

根据RFC-6455基本框架,最大大小限制为2 ^ 63字节,这实际上取决于客户端库的实现。

答案 1 :(得分:1)

  

我只是想知道websocket协议是否已经处理了大块数据的发送...

取决于您的意思。

WebSockets协议基于帧(不基于流)

如果您想知道的是“一个巨大的有效载荷会一并到达吗?” -答案始终是“是”。

WebSockets协议是基于帧/消息的协议-不是流协议。 Which means,该协议以旨在授予被授权者消息顺序和完整性的方式来包裹和解包消息。一条消息将不会得到...

...在中间被截断(与TCP / IP不同,TCP / IP是基于流的协议,在其中保留顺序,但不保留消息边界)。

WebSockets协议可以使用碎片化的“数据包”

根据标准,协议可以将大消息分解为较小的块。它也没有。

存在32位兼容性问题,这使得一些客户端/服务器将消息分成更小的片段,然后在接收端将它们放回一起(在调用onmessage回调之前)。

需要应用层“分块”进行复用

通过单个WebSocket连接发送较大的有效负载将导致流水线问题,其中其他消息将不得不等待,直到发送,接收并重新组合了巨大的有效负载为止。

在实践中,这意味着将大型有效负载由应用程序层分段。这种“分块”的应用程序层方法将能够多路复用单个WebSocket连接。