クラス WebSocketTransportRegistration

java.lang.ObjectSE
org.springframework.web.socket.config.annotation.WebSocketTransportRegistration

public class WebSocketTransportRegistration extends ObjectSE
WebSocket クライアントから送受信されるメッセージの処理を構成します。
導入:
4.0.3
作成者:
Rossen Stoyanchev
  • コンストラクターの詳細

    • WebSocketTransportRegistration

      public WebSocketTransportRegistration()
  • メソッドの詳細

    • setMessageSizeLimit

      public WebSocketTransportRegistration setMessageSizeLimit(int messageSizeLimit)
      複数の WebSocket メッセージから集約される STOMP フレームなど、受信サブプロトコルメッセージの最大サイズを設定します。

      デフォルト値は 64K(つまり 64 * 1024)です。

      注意 : これは、代わりに WebSocket サーバーレベルで構成する必要がある個々の WebSocket メッセージのサイズと同じではありません。詳細については、リファレンスドキュメントを参照してください。

    • getMessageSizeLimit

      @Nullable protected IntegerSE getMessageSizeLimit()
      内部使用のための保護されたアクセサー。
    • setSendTimeLimit

      public WebSocketTransportRegistration setSendTimeLimit(int timeLimit)
      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

      @Nullable protected IntegerSE getSendTimeLimit()
      内部使用のための保護されたアクセサー。
    • setSendBufferSizeLimit

      public WebSocketTransportRegistration setSendBufferSizeLimit(int sendBufferSizeLimit)
      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

      @Nullable protected IntegerSE getSendBufferSizeLimit()
      内部使用のための保護されたアクセサー。
    • setTimeToFirstMessage

      public WebSocketTransportRegistration setTimeToFirstMessage(int timeToFirstMessage)
      WebSocket 接続が確立されてから最初のサブプロトコルメッセージが受信されるまでの最大許容時間をミリ秒単位で設定します。

      このハンドラーは、サブプロトコルを使用する WebSocket 接続用です。クライアントが最初に少なくとも 1 つのサブプロトコルメッセージを送信することを期待します。そうでない場合は、接続がうまくいかないと想定します。プロキシの課題、遅いネットワーク、閉じることができます。

      デフォルトでは、これは 60,000 (1 分)に設定されています。

      パラメーター:
      timeToFirstMessage - ミリ秒単位で許可される最大時間
      導入:
      5.1
    • getTimeToFirstMessage

      @Nullable protected IntegerSE 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

      protected ListSE<WebSocketHandlerDecoratorFactory> getDecoratorFactories()