Websocket:“无效的帧头”如果我发送130+ char作为我的关闭消息

时间:2016-08-09 19:09:26

标签: javascript node.js html5 websocket

我使用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')

我做错了什么? 我该如何解决?

1 个答案:

答案 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.

但是,如果某个库尝试对消息进行分段或使用扩展长度的消息,则会抛出您所看到的错误。