浏览器可以将有效负载数据拆分为多个 websocket 帧吗?
Posted
技术标签:
【中文标题】浏览器可以将有效负载数据拆分为多个 websocket 帧吗?【英文标题】:Can browser split up payload data into multiple websocket frames? 【发布时间】:2014-03-08 19:23:42 【问题描述】:在下面的 javascript 中,我通过 websocket 最多发送 200 个字节(在连接和握手之后):
buf= new Uint8Array(200);
/* filling buf with data*/
ws.send(buf.buffer);
另一边有一个简单的 iocp c++ 服务器,它接收这 200 个字节,前面是几个字节的 websocket 帧。
我可以假设浏览器总是一次性发送这 200 个字节(+ websocket 头)吗? 或者我应该总是在服务器端检查这是否是最后一帧(通过检查 websocket 头中的第一位)?
提前感谢您的提示。
【问题讨论】:
【参考方案1】:您应该始终检查 FIN 位,根据 RFC6455,浏览器完全有可能拆分有效负载(取决于 Web 套接字帧的一些上限)。
【讨论】:
以上是关于浏览器可以将有效负载数据拆分为多个 websocket 帧吗?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能激发 TCP 将 send() 拆分为多个 recv()