リモート エンドポイントの状態は [TEXT_FULL_WRITING] であり、呼び出されたメソッドに対して無効な状態です。
handlerA と handlerB の 2 つのメソッドは同時に実行される場合があります. A または B メソッドが特定のセッションをトラバースし、sendMessage を呼び出してメッセージを送信すると、もう一方のメソッドも同じセッションを使用して別のメッセージを送信します (同じセッション メッセージつまり、同時に複数のスレッドがデータの競合をソケットに書き込みます)、TEXT_FULL_WRITING 例外が報告されます。
一般的に採用されているソリューションは次のとおりです。
同期ロックと同期送信 (session.getBasicRemote()) を使用しますが、多くの場合、非同期送信が必要になります。
私のプロジェクトでは、Tomcat を使用すると、TEXT_FULL_WRITING によって websocket 接続が直接切断されます.このソリューションを使用すると、セッションが同時に 1 つのメッセージのみを送信するようになり、TEXT_FULL_WRITING エラーが回避されます.
この解決策はバッファと怠惰な判断方法のみを使用しており、標準的な解決策ではありません.この解決策に問題があると思われる場合、またはより良い解決策がある場合は、議論することができます.