クラス ConcurrentWebSocketSessionDecorator
java.lang.ObjectSE
org.springframework.web.socket.handler.WebSocketSessionDecorator
org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator
- 実装されたすべてのインターフェース:
CloseableSE
、AutoCloseableSE
、WebSocketSession
WebSocketSession
をラップして、一度に 1 つのスレッドのみがメッセージを送信できるようにします。送信が遅い場合、他のスレッドからさらにメッセージを送信しようとしても、フラッシュロックを取得できず、代わりにメッセージがバッファリングされます。その時点で、指定されたバッファーサイズ制限と送信時間制限がチェックされ、制限を超えた場合はセッションが閉じられます。
- 導入:
- 4.0.3
- 作成者:
- Rossen Stoyanchev, Juergen Hoeller
ネストされたクラスのサマリー
修飾子と型クラス説明static enum
バッファがいっぱいになったときに何をするかのオプションの列挙。コンストラクターのサマリー
コンストラクター説明ConcurrentWebSocketSessionDecorator
(WebSocketSession delegate, int sendTimeLimit, int bufferSizeLimit) 基本コンストラクター。ConcurrentWebSocketSessionDecorator
(WebSocketSession delegate, int sendTimeLimit, int bufferSizeLimit, ConcurrentWebSocketSessionDecorator.OverflowStrategy overflowStrategy) 使用するオーバーフロー戦略も指定するコンストラクター。メソッドのサマリー
修飾子と型メソッド説明void
close
(CloseStatus status) 指定されたクローズ状態で WebSocket 接続を閉じます。int
現在のバッファサイズ(バイト数)を返します。int
構成されたバッファーサイズ制限(バイト数)を返します。int
設定された送信時間制限(ミリ秒)を返します。long
現在の送信が開始されてからの時間(ミリ秒)を返します。現在送信が進行中でない場合は 0 を返します。void
sendMessage
(WebSocketMessage<?> message) WebSocket メッセージを送信する:TextMessage
またはBinaryMessage
のいずれか。void
setMessageCallback
(ConsumerSE<WebSocketMessage<?>> callback) メッセージが送信バッファに追加された後に呼び出されるコールバックを設定します。toString()
クラス org.springframework.web.socket.handler.WebSocketSessionDecorator から継承されたメソッド
close, getAcceptedProtocol, getAttributes, getBinaryMessageSizeLimit, getDelegate, getExtensions, getHandshakeHeaders, getId, getLastSession, getLocalAddress, getPrincipal, getRemoteAddress, getTextMessageSizeLimit, getUri, isOpen, setBinaryMessageSizeLimit, setTextMessageSizeLimit, unwrap
コンストラクターの詳細
ConcurrentWebSocketSessionDecorator
public ConcurrentWebSocketSessionDecorator(WebSocketSession delegate, int sendTimeLimit, int bufferSizeLimit) 基本コンストラクター。- パラメーター:
delegate
- 委譲するWebSocketSession
sendTimeLimit
- 送信時間制限 (ミリ秒)bufferSizeLimit
- バッファサイズの制限 (バイト数)
ConcurrentWebSocketSessionDecorator
public ConcurrentWebSocketSessionDecorator(WebSocketSession delegate, int sendTimeLimit, int bufferSizeLimit, ConcurrentWebSocketSessionDecorator.OverflowStrategy overflowStrategy) 使用するオーバーフロー戦略も指定するコンストラクター。- パラメーター:
delegate
- 委譲するWebSocketSession
sendTimeLimit
- 送信時間制限 (ミリ秒)bufferSizeLimit
- バッファサイズの制限 (バイト数)overflowStrategy
- 使用するオーバーフロー戦略。デフォルトでは、セッションは終了します。- 導入:
- 5.1
メソッドの詳細
getSendTimeLimit
public int getSendTimeLimit()設定された送信時間制限(ミリ秒)を返します。- 導入:
- 4.3.13
getBufferSizeLimit
public int getBufferSizeLimit()構成されたバッファーサイズ制限(バイト数)を返します。- 導入:
- 4.3.13
getBufferSize
public int getBufferSize()現在のバッファサイズ(バイト数)を返します。getTimeSinceSendStarted
public long getTimeSinceSendStarted()現在の送信が開始されてからの時間(ミリ秒)を返します。現在送信が進行中でない場合は 0 を返します。setMessageCallback
メッセージが送信バッファに追加された後に呼び出されるコールバックを設定します。- パラメーター:
callback
- 呼び出すコールバック- 導入:
- 5.3
sendMessage
インターフェースからコピーされた説明:WebSocketSession
WebSocket メッセージを送信する:TextMessage
またはBinaryMessage
のいずれか。注意 : 基盤となる標準の WebSocket セッション(JSR-356)では、同時送信は許可されていません。送信を同期する必要があります。これを確実にするための 1 つのオプションは、
WebSocketSession
をConcurrentWebSocketSessionDecorator
でラップすることです。- 次で指定:
- インターフェース
WebSocketSession
のsendMessage
- オーバーライド:
- クラス
WebSocketSessionDecorator
のsendMessage
- 例外:
IOExceptionSE
- 関連事項:
close
インターフェースからコピーされた説明:WebSocketSession
指定されたクローズ状態で WebSocket 接続を閉じます。- 次で指定:
- インターフェース
WebSocketSession
のclose
- オーバーライド:
- クラス
WebSocketSessionDecorator
のclose
- 例外:
IOExceptionSE
toString
- オーバーライド:
- クラス
WebSocketSessionDecorator
のtoString