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