public class SubProtocolWebSocketHandler extends ObjectSE implements WebSocketHandler, SubProtocolCapable, MessageHandler, SmartLifecycle
MessageChannel とともに、受信 WebSocket メッセージを SubProtocolHandler に委譲する WebSocketHandler の実装。 また、Message に関連付けられた WebSocket セッションを見つけ、それをメッセージとともにサブプロトコルハンドラーに渡して、アプリケーションからクライアントにメッセージを送り返す MessageHandler の実装。
| コンストラクターと説明 |
|---|
SubProtocolWebSocketHandler(MessageChannel clientInboundChannel, SubscribableChannel clientOutboundChannel) 指定された受信および送信チャネル用に新しい SubProtocolWebSocketHandler を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | addProtocolHandler(SubProtocolHandler handler) サブプロトコルハンドラーを登録します。 |
void | afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus)WebSocket 接続がいずれかの側で閉じられた後、またはトランスポートエラーが発生した後に呼び出されます。 |
void | afterConnectionEstablished(WebSocketSession session)WebSocket ネゴシエーションが成功し、WebSocket 接続が開かれ、使用可能な状態になった後に呼び出されます。 |
protected SubProtocolHandler | findProtocolHandler(WebSocketSession session) |
SubProtocolHandler | getDefaultProtocolHandler() 使用するデフォルトのサブプロトコルハンドラーを返します。 |
int | getPhase() このオブジェクトのフェーズ値を返します。 |
MapSE<StringSE, SubProtocolHandler> | getProtocolHandlerMap() プロトコル名をキーとするサブプロトコルを返します。 |
ListSE<SubProtocolHandler> | getProtocolHandlers() |
int | getSendBufferSizeLimit() バッファサイズの制限(バイト数)を返します。 |
int | getSendTimeLimit() 送信時間制限(ミリ秒)を返します。 |
StringSE | getStatsInfo() 内部状態とカウンタを記述する文字列を返します。 |
ListSE<StringSE> | getSubProtocols() サポートされているすべてのプロトコルを返します。 |
void | handleMessage(Message<?> message)WebSocket クライアントへの発信 Spring メッセージを処理します。 |
void | handleMessage(WebSocketSession session, WebSocketMessage<?> message)WebSocket クライアントからの受信メッセージを処理します。 |
void | handleTransportError(WebSocketSession session, ThrowableSE exception) 基礎となる WebSocket メッセージトランスポートからのエラーを処理します。 |
boolean | isAutoStartup() |
boolean | isRunning() このコンポーネントが現在実行されているかどうかを確認します。 |
void | setDefaultProtocolHandler(SubProtocolHandler defaultProtocolHandler) クライアントがサブプロトコルをリクエストしなかったときに使用するように SubProtocolHandler を設定します。 |
void | setProtocolHandlers(ListSE<SubProtocolHandler> protocolHandlers)WebSocket ハンドシェイクリクエストでクライアントがリクエストしたサブプロトコルに応じて、使用する 1 つ以上のハンドラーを構成します。 |
void | setSendBufferSizeLimit(int sendBufferSizeLimit) バッファサイズの制限(バイト数)を指定します。 |
void | setSendTimeLimit(int sendTimeLimit) 送信時間制限(ミリ秒)を指定します。 |
void | start() このコンポーネントを起動します。 |
void | stop() このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。 |
void | stop(RunnableSE callback)Lifecycle コンポーネントが現在実行中の場合、停止する必要があることを示します。 |
boolean | supportsPartialMessages()WebSocketHandler が部分的なメッセージを処理するかどうか。 |
StringSE | toString() |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSEpublic SubProtocolWebSocketHandler(MessageChannel clientInboundChannel, SubscribableChannel clientOutboundChannel)
SubProtocolWebSocketHandler を作成します。clientInboundChannel - 受信 MessageChannelclientOutboundChannel - 送信 MessageChannelpublic void setProtocolHandlers(ListSE<SubProtocolHandler> protocolHandlers)
protocolHandlers - 使用するサブプロトコルハンドラー public ListSE<SubProtocolHandler> getProtocolHandlers()
public void addProtocolHandler(SubProtocolHandler handler)
public MapSE<StringSE,SubProtocolHandler> getProtocolHandlerMap()
public void setDefaultProtocolHandler(@Nullable SubProtocolHandler defaultProtocolHandler)
SubProtocolHandler を設定します。defaultProtocolHandler - デフォルトのハンドラー @Nullable public SubProtocolHandler getDefaultProtocolHandler()
public ListSE<StringSE> getSubProtocols()
SubProtocolCapable の getSubProtocols public void setSendTimeLimit(int sendTimeLimit)
public int getSendTimeLimit()
public void setSendBufferSizeLimit(int sendBufferSizeLimit)
public int getSendBufferSizeLimit()
public StringSE getStatsInfo()
public boolean isAutoStartup()
SmartLifecycletrue が含まれる ApplicationContext がリフレッシュされるときに、この Lifecycle コンポーネントがコンテナーによって自動的に開始される場合、true を返します。false の値は、プレーン Lifecycle 実装に類似した、明示的な Lifecycle.start() 呼び出しを介してコンポーネントが開始されることを意図していることを示します。
public int getPhase()
Phasedpublic final void start()
Lifecycleコンポーネントがすでに実行されている場合は、例外をスローしないでください。
コンテナーの場合、これは適用されるすべてのコンポーネントに開始シグナルを伝播します。
Lifecycle の start SmartLifecycle.isAutoStartup()public final void stop()
LifecycleSmartLifecycle とその stop(Runnable) バリアントの実装を検討してください。 この停止通知が破棄の前に来るとは限らないことに注意してください。通常のシャットダウンでは、Lifecycle Bean は一般的な破棄コールバックが伝達される前に、まず停止通知を受け取ります。ただし、コンテキストの有効期間中のホットリフレッシュ時、またはリフレッシュ試行が中止されたときは、destroy メソッドのみが呼び出されます。
コンポーネントがまだ開始されていない場合は、例外をスローしないでください。
コンテナーの場合、これは停止シグナルを適用するすべてのコンポーネントに伝播します。
Lifecycle の stop SmartLifecycle.stop(Runnable), DisposableBean.destroy()public final void stop(RunnableSE callback)
SmartLifecycle 提供されたコールバックは、LifecycleProcessor によって使用され、共通のシャットダウン順序値を持つすべてのコンポーネントの順序付けられた、潜在的に同時のシャットダウンをサポートします。コールバック は、SmartLifecycle コンポーネントが実際に停止した後に実行する必要があります。
LifecycleProcessor は、stop メソッドのこのバリアントのみを呼び出します。つまり、SmartLifecycle 実装では、このメソッドの実装内に明示的に委譲されない限り、Lifecycle.stop() は呼び出されません。
SmartLifecycle の stop Lifecycle.stop(), Phased.getPhase()public final boolean isRunning()
Lifecycle コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、true を返します。
public void afterConnectionEstablished(WebSocketSession session) throws ExceptionSE
WebSocketHandlerWebSocketHandler の afterConnectionEstablished ExceptionSE - このメソッドは例外を処理または伝播できます。詳細については、クラスレベルの Javadoc を参照してください。public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws ExceptionSE
WebSocketHandler の handleMessage ExceptionSE - このメソッドは例外を処理または伝播できます。詳細については、クラスレベルの Javadoc を参照してください。public void handleMessage(Message<?> message) throws MessagingException
MessageHandler の handleMessage message - 処理するメッセージ MessagingExceptionpublic void handleTransportError(WebSocketSession session, ThrowableSE exception) throws ExceptionSE
WebSocketHandlerWebSocketHandler の handleTransportError ExceptionSE - このメソッドは例外を処理または伝播できます。詳細については、クラスレベルの Javadoc を参照してください。public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws ExceptionSE
WebSocketHandlerWebSocketHandler の afterConnectionClosed ExceptionSE - このメソッドは例外を処理または伝播できます。詳細については、クラスレベルの Javadoc を参照してください。public boolean supportsPartialMessages()
WebSocketHandlertrue に設定され、基礎となる WebSocket サーバーが部分メッセージをサポートする場合、大きな WebSocket メッセージまたは不明なサイズのメッセージが分割され、WebSocketHandler.handleMessage(WebSocketSession, WebSocketMessage) への複数の呼び出しで受信される可能性があります。フラグ WebSocketMessage.isLast() は、メッセージが部分的であるかどうか、およびメッセージが最後の部分であるかどうかを示します。WebSocketHandler の supportsPartialMessages protected final SubProtocolHandler findProtocolHandler(WebSocketSession session)
public StringSE toString()
ObjectSE の toStringSE