jetty websocket中的ProtocolException是什么意思?

jetty websocket中的ProtocolException是什么意思?,websocket,jetty,Websocket,Jetty,当我尝试使用jetty websocket客户端发送大文本(约40M)时,我遇到了以下协议异常: org.eclipse.jetty.websocket.api.ProtocolException:无效的控制帧有效负载长度[142]不能超过[125] 位于org.eclipse.jetty.websocket.common.Parser.assertSanePayloadLength(Parser.java:122) 位于org.eclipse.jetty.websocket.common.Pa

当我尝试使用jetty websocket客户端发送大文本(约40M)时,我遇到了以下协议异常:

org.eclipse.jetty.websocket.api.ProtocolException:无效的控制帧有效负载长度[142]不能超过[125] 位于org.eclipse.jetty.websocket.common.Parser.assertSanePayloadLength(Parser.java:122) 位于org.eclipse.jetty.websocket.common.Parser.parseFrame(Parser.java:482) 位于org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:254) 位于org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:628) 位于org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:476) 位于org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) 位于org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) 位于org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) 运行(Thread.java:745)

我修改了maxTextMessageSize以发送大文本。知道为什么ws关闭了吗

org.eclipse.jetty.websocket.api.ProtocolException:无效的控制帧有效负载长度[142]不能超过[125]

也就是说,websocket实现接收到一个websocket控制帧(CLOSE、PING、PONG),该控制帧的有效负载为142字节,这违反了websocket规范(请参阅),该规范将控制帧的有效负载限制为仅125字节


maxTextMessageSize仅适用于从数据帧(文本和0个或更多连续帧)收集的总体消息大小。

您知道WS-Control框架的大小无效的原因吗?这可能是因为您使用了错误的WebSocket实现,或者旧版本的WebSocket与新版本的WebSocket相对。例如:Jetty 9.3.8是WebSocket的permessage deflate的第一个稳定版本,它与最新的Chrome和Firefox的permessage deflate补丁一起工作。