私はSockJSでSpring-Websockets 4.2を使用しています。Spring-Websocket 4.2でSockJSを使った部分的なメッセージ4.2
クライアントが受信したメッセージは非常に大きくなる可能性があるため、部分的なメッセージを使用したいと思います。 TextWebSocketHandlerの私のサブクラスは、trueを返すためにsupportsPartialMessagesをオーバーライドします。しかし、Springによって作成されたSockJsWebSocketHandlerは部分的なメッセージをサポートしていないので、私はまだエラーcode=1009, reason=The decoded text message was too big for the output buffer and the endpoint does not support partial messages
を取得します。
回避策として、hereのようにバッファサイズを1 MBに増やしましたが、かなりの数のクライアント(同時に〜2000)をサポートする必要があるため、メモリが多すぎます。
SockJSで部分メッセージを使用する方法はありますか?
これを解決できましたか?私も同じ問題に直面しており、解決策を見つけることができませんでしたか?また、 'container.setMaxTextMessageBufferSize(16384)'に記載されている数字は、ビット数、バイト数、または何バイトですか? – BiJ
いいえ、残念ながらそうではありません。私たちは、送信者をチャンクし、受信者に再組み立てすることによって、部分的なメッセージングを実装することになりました。 setMaxTextMessageBufferSizeのバイト数はAFAIKです。 – Jan
スティッキーセッションのようなロードバランサを使用してメッセージを分割できますか?レスキューストリームを実装する必要があるか、メッセージを処理するために通常のソケットの外側にある適切なスケールアウトメッセージキューを使用する必要があるようです。 –