2016-12-29 6 views
0

私は桟橋のWebSocketクライアントを使用して(40M程度)大きなテキストを送信しようとすると、私はこれでProtocolExceptionを得た:jetty websocketのProtocolExceptionは何を意味しますか?

org.eclipse.jetty.websocket.api.ProtocolException:無効な制御フレームペイロード長、[142]はできませんorg.eclipse.jetty.websocket.common.Parser.assertSanePayloadLength(Parser.java:122) を超えてください。 at org.eclipse.jetty.websocket.common.Parser.parseFrame(Parser.java:482) at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:254) at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:628) at org.eclipse。 jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConn ection.java:476) at org.eclipse.jetty.io.AbstractConnection $ 2.run(AbstractConnection.java:540) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) org.eclipse.jetty.util.thread.QueuedThreadPool $ 3.run java.lang.Thread.runで(QueuedThreadPool.java:555) (Thread.java:745)

で私はそれが作るmaxTextMessageSizeを修正しました大きなテキストを送る。 wsが閉じられている理由は何ですか?

答えて

1

org.eclipse.jetty.websocket.api.ProtocolException:無効な制御フレームのペイロード長は、[142]は超えることができないのWebSocket実装はCLOSE(WebSocketの制御フレームを受信したと言う[125]

、PING、PONG)は、制御フレームを125バイトのペイロードに制限するWebSocket Spec(RFC6455 Section 5.5を参照)に違反しているペイロードの142バイトを持っていました。 WS制御フレームは無効なサイズを持っている理由

maxTextMessageSizeのみデータフレームから全体的な収集メッセージサイズに適用されます(TEXT、および0以上の継続がフレーム)

+0

は、あなたのアイデアを持っていますか? – Jane

+0

これはWebSocketの悪い実装、または新しいバージョンのWebSocketに対する旧バージョンのWebSocketを使用してあなたから来た可能性があります。例:Jetty 9.3.8は、WebSocketのpermessage-deflateの最初の安定版です。これは、最新のChromeとFirefoxの修正プログラムで動作します。 –

関連する問題