クラス ConcurrentWebSocketSessionDecorator
java.lang.ObjectSE
org.springframework.web.socket.handler.WebSocketSessionDecorator
org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator
- 実装済みのインターフェース一覧:
CloseableSE, AutoCloseableSE, WebSocketSession
WebSocketSession をラップして、一度に 1 つのスレッドのみがメッセージを送信できるようにします。send が遅い場合、他のスレッドからさらにメッセージを送信しようとしてもフラッシュロックを取得できず、代わりにメッセージはバッファリングされます。その際、指定されたバッファサイズ制限と送信時間制限がチェックされ、制限を超えた場合はセッションが閉じられます。
- 導入:
- 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) 使用するオーバーフロー戦略も指定するコンストラクター。方法の概要
修飾子と型メソッド説明voidclose(CloseStatus status) 指定されたクローズ状態で WebSocket 接続を閉じます。int現在のバッファサイズ(バイト数)を返します。int構成されたバッファーサイズ制限(バイト数)を返します。設定されたConcurrentWebSocketSessionDecorator.OverflowStrategyを返します。int設定された送信時間制限(ミリ秒)を返します。long現在の送信が開始されてからの時間(ミリ秒)を返します。現在送信が進行中でない場合は 0 を返します。voidsendMessage(WebSocketMessage<?> message) WebSocket メッセージを送信する:TextMessageまたはBinaryMessageのいずれか。voidsetMessageCallback(ConsumerSE<WebSocketMessage<?>> callback) メッセージが送信バッファに追加された後に呼び出されるコールバックを設定します。toString()クラス 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- 委譲するWebSocketSessionsendTimeLimit- 送信時間制限 (ミリ秒)bufferSizeLimit- バッファサイズの制限 (バイト数)
ConcurrentWebSocketSessionDecorator
public ConcurrentWebSocketSessionDecorator(WebSocketSession delegate, int sendTimeLimit, int bufferSizeLimit, ConcurrentWebSocketSessionDecorator.OverflowStrategy overflowStrategy) 使用するオーバーフロー戦略も指定するコンストラクター。- パラメーター:
delegate- 委譲するWebSocketSessionsendTimeLimit- 送信時間制限 (ミリ秒)bufferSizeLimit- バッファサイズの制限 (バイト数)overflowStrategy- 使用するオーバーフロー戦略。デフォルトではセッションは終了する- 導入:
- 5.1
メソッドの詳細
getSendTimeLimit
public int getSendTimeLimit()設定された送信時間制限(ミリ秒)を返します。- 導入:
- 4.3.13
getBufferSizeLimit
public int getBufferSizeLimit()構成されたバッファーサイズ制限(バイト数)を返します。- 導入:
- 4.3.13
getOverflowStrategy
設定されたConcurrentWebSocketSessionDecorator.OverflowStrategyを返します。- 導入:
- 6.2.9
getBufferSize
public int getBufferSize()現在のバッファサイズ(バイト数)を返します。getTimeSinceSendStarted
public long getTimeSinceSendStarted()現在の送信が開始されてからの時間(ミリ秒)を返します。現在送信が進行中でない場合は 0 を返します。setMessageCallback
メッセージが送信バッファに追加された後に呼び出されるコールバックを設定します。- パラメーター:
callback- 呼び出すコールバック- 導入:
- 5.3
sendMessage
インターフェースからコピーされた説明:WebSocketSessionWebSocket メッセージを送信する:TextMessageまたはBinaryMessageのいずれか。注意 : 基盤となる標準の WebSocket セッション(JSR-356)では、同時送信は許可されていません。送信を同期する必要があります。これを確実にするための 1 つのオプションは、
WebSocketSessionをConcurrentWebSocketSessionDecoratorでラップすることです。- 次で指定:
- インターフェース
WebSocketSessionのsendMessage - オーバーライド:
- クラス
WebSocketSessionDecoratorのsendMessage - 例外:
IOExceptionSE- 関連事項:
close
インターフェースからコピーされた説明:WebSocketSession指定されたクローズ状態で WebSocket 接続を閉じます。- 次で指定:
- インターフェース
WebSocketSessionのclose - オーバーライド:
- クラス
WebSocketSessionDecoratorのclose - 例外:
IOExceptionSE
toString
- オーバーライド:
- クラス
WebSocketSessionDecoratorのtoString