我使用ws
node.js模块和html5 WebSocket
。
Websocket连接在用户启动导入时启动,在导入成功或出现错误时关闭。
有时错误消息很长(130多个租船人)
如果通过close
事件发送这些长消息,Chrome会抛出“无效的帧头”错误:
ws.close(1008, 'Really long error Really long error Really long error Really long error Really long errorReally long error Really long error')
我做错了什么? 我该如何解决?
答案 0 :(得分:0)
websocket 规范 RFC6455 在第 5.5 节中声明
All control frames MUST have a payload length of 125 bytes or less
and MUST NOT be fragmented.
即控制帧不能分片(如 @David Gölzhäuser 所述),其有效载荷长度限制为 125 字节。
我刚刚使用 Chrome 在 websocket 上发送了一个关闭请求,Chrome 抛出了异常
Failed to execute 'close' on 'WebSocket': The message must not be greater than 123 bytes.
但是,如果某个库尝试对消息进行分段或使用扩展长度的消息,则会抛出您所看到的错误。