クラス WebSocketTransportRegistration
- 導入:
- 4.0.3
- 作成者:
- Rossen Stoyanchev
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明WebSocket メッセージの処理に使用されるハンドラーを装飾するファクトリを追加します。protected ListSE<WebSocketHandlerDecoratorFactory>
protected IntegerSE
内部使用のための保護されたアクセサー。protected IntegerSE
内部使用のための保護されたアクセサー。protected IntegerSE
内部使用のための保護されたアクセサー。protected IntegerSE
内部使用のための保護されたアクセサー。setDecoratorFactories
(WebSocketHandlerDecoratorFactory... factories) WebSocket メッセージの処理に使用されるハンドラーを装飾するように 1 つ以上のファクトリを構成します。setMessageSizeLimit
(int messageSizeLimit) 複数の WebSocket メッセージから集約される STOMP フレームなど、受信サブプロトコルメッセージの最大サイズを設定します。setSendBufferSizeLimit
(int sendBufferSizeLimit) WebSocket セッションにメッセージを送信するときにバッファリングするデータの最大量、または SockJS フォールバックオプションが使用されているときに HTTP レスポンスを構成します。setSendTimeLimit
(int timeLimit) SockJS フォールバックオプションが使用されている場合、WebSocket セッションにメッセージを送信するとき、または HTTP レスポンスに書き込むときに許可される最大時間の制限時間(ミリ秒単位)を構成します。setTimeToFirstMessage
(int timeToFirstMessage) WebSocket 接続が確立されてから最初のサブプロトコルメッセージが受信されるまでの最大許容時間をミリ秒単位で設定します。
コンストラクターの詳細
WebSocketTransportRegistration
public WebSocketTransportRegistration()
メソッドの詳細
setMessageSizeLimit
複数の WebSocket メッセージから集約される STOMP フレームなど、受信サブプロトコルメッセージの最大サイズを設定します。デフォルト値は 64K(つまり 64 * 1024)です。
注意 : これは、代わりに WebSocket サーバーレベルで構成する必要がある個々の WebSocket メッセージのサイズと同じではありません。詳細については、リファレンスドキュメントを参照してください。
getMessageSizeLimit
内部使用のための保護されたアクセサー。setSendTimeLimit
SockJS フォールバックオプションが使用されている場合、WebSocket セッションにメッセージを送信するとき、または HTTP レスポンスに書き込むときに許可される最大時間の制限時間(ミリ秒単位)を構成します。一般的に、WebSocket サーバーは、単一の WebSocket セッションへのメッセージが一度に単一のスレッドから送信されることを想定しています。
@EnableWebSocketMessageBroker
構成を使用する場合、これは自動的に保証されます。メッセージの送信が遅い場合、または少なくともメッセージの送信速度より遅い場合、後続のメッセージは、sendTimeLimit
またはsendBufferSizeLimit
のいずれかに到達するまでバッファリングされ、その時点でセッション状態がクリアされ、セッションを閉じようとします。セッションの時間制限は、追加のメッセージを送信しようとした場合にのみチェックされることに注意してください。1 つのメッセージのみが送信されてハングした場合、別のメッセージが送信されるか、基礎となる物理ソケットがタイムアウトするまでセッションはタイムアウトしません。これは WebSocket サーバーまたは HTTP 接続タイムアウトの代替ではなく、未送信メッセージのバッファリングの範囲を制御することを目的としています。
セッションを閉じると、実際に物理ソケットを閉じることができず、ハングする場合があることに注意してください。これは、Tomcat 7 でデフォルトで使用される Tomcat の BIO コネクターなどのブロッキング IO を使用する場合に特に当てはまります。サーバーがデフォルトで使用される Tomcat の NIO コネクターなどのノンブロッキング IO を使用していることを確認することをお勧めします。Tomcat 8. ブロッキング IO を使用する必要がある場合は、OS レベルの TCP 設定(Linux の
/proc/sys/net/ipv4/tcp_retries2
など)をカスタマイズすることを検討してください。デフォルト値は 10 秒(つまり、10 * 1000)です。
- パラメーター:
timeLimit
- ミリ秒単位のタイムアウト値。値は 0 より大きくなければなりません。それ以外の場合は無視されます。
getSendTimeLimit
内部使用のための保護されたアクセサー。setSendBufferSizeLimit
WebSocket セッションにメッセージを送信するときにバッファリングするデータの最大量、または SockJS フォールバックオプションが使用されているときに HTTP レスポンスを構成します。一般的に、WebSocket サーバーは、単一の WebSocket セッションへのメッセージが一度に単一のスレッドから送信されることを想定しています。
@EnableWebSocketMessageBroker
構成を使用する場合、これは自動的に保証されます。メッセージの送信が遅い場合、または少なくともメッセージの送信速度より遅い場合、後続のメッセージは、sendTimeLimit
またはsendBufferSizeLimit
のいずれかに到達するまでバッファリングされ、その時点でセッション状態がクリアされ、セッションを閉じようとします。セッションを閉じると、実際に物理ソケットを閉じることができず、ハングする場合があることに注意してください。これは、Tomcat 7 でデフォルトで構成されている Tomcat の BIO コネクターなどのブロッキング IO を使用する場合に特に当てはまります。サーバーが Tomcat8 でデフォルトで使用される Tomcat の NIO コネクターなどのノンブロッキング IO を使用していることを確認することをお勧めします。ブロッキング IO を使用する必要があります。たとえば、Linux の
/proc/sys/net/ipv4/tcp_retries2
などの OS レベルの TCP 設定をカスタマイズすることを検討してください。デフォルト値は 512K(つまり 512 * 1024)です。
- パラメーター:
sendBufferSizeLimit
- メッセージを送信するときにバッファリングする最大バイト数。値が 0 以下の場合、バッファリングは事実上無効になります。
getSendBufferSizeLimit
内部使用のための保護されたアクセサー。setTimeToFirstMessage
WebSocket 接続が確立されてから最初のサブプロトコルメッセージが受信されるまでの最大許容時間をミリ秒単位で設定します。このハンドラーは、サブプロトコルを使用する WebSocket 接続用です。クライアントが最初に少なくとも 1 つのサブプロトコルメッセージを送信することを期待します。そうでない場合は、接続がうまくいかないと想定します。プロキシの課題、遅いネットワーク、閉じることができます。
デフォルトでは、これは
60,000
(1 分)に設定されています。- パラメーター:
timeToFirstMessage
- ミリ秒単位で許可される最大時間- 導入:
- 5.1
getTimeToFirstMessage
内部使用のための保護されたアクセサー。setDecoratorFactories
public WebSocketTransportRegistration setDecoratorFactories(WebSocketHandlerDecoratorFactory... factories) WebSocket メッセージの処理に使用されるハンドラーを装飾するように 1 つ以上のファクトリを構成します。これは、たとえば、対応する HTTP セッションの有効期限が切れたときに Spring Security が WebSocket セッションを強制的に閉じることを許可するなど、一部の高度な使用例で役立つ場合があります。- 導入:
- 4.1.2
addDecoratorFactory
WebSocket メッセージの処理に使用されるハンドラーを装飾するファクトリを追加します。これは、たとえば、対応する HTTP セッションの有効期限が切れたときに Spring Security が WebSocket セッションを強制的に閉じることを許可するなど、一部の高度な使用例に役立つ場合があります。- 導入:
- 4.1.2
getDecoratorFactories