websocket传输超大数据包需要考虑粘包问题吗?

我看websocket有frame,frame的头部有payload length字段,是否意味着websocket自动帮我们处理了粘包的分包问题呢?

如果是传输操场数据还需要我们自己手动定义一套协议来解决粘包的分包问题吗?

阅读 14.7k
3 个回答

不需要, 那是协议层的事情,也就是你的浏览器和web服务器要关心的事。

当然如果你打算实现浏览器或支持websocket的服务器是另一回事。

协议的RFC
https://tools.ietf.org/html/r...

“粘包”?哪看的这些自己 YY 的概念啊。

  • WebSocket 只是协议而已,是否需要自己处理连接中的数据,看实现。
  • Python - Tornado 中的 WebSocket 实现,不需要自己考虑数据长度的处理。(WebSocket 的协议不难的,自己翻翻源码就了解细节了)
  • 最大数据长度是否有限制,也看实现。 Python - Tornado 中的实现,可以自己定义最大数据长度,如果不定义,默认值是 10 1024 1024 字节。超过最大长度,会断开连接。

不需要,你自己数据协议也解决不了这个问题,TCP协议都会遇到粘包问题,大多数情况下,不需要考虑

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题