クラス WebSocketTransportHandler
java.lang.ObjectSE
org.springframework.web.socket.sockjs.transport.handler.AbstractTransportHandler
org.springframework.web.socket.sockjs.transport.handler.WebSocketTransportHandler
- 実装されたすべてのインターフェース:
Aware
、Lifecycle
、ServletContextAware
、HandshakeHandler
、SockJsSessionFactory
、TransportHandler
public class WebSocketTransportHandler
extends AbstractTransportHandler
implements SockJsSessionFactory, HandshakeHandler, Lifecycle, ServletContextAware
WebSocket ベースの
TransportHandler
。SockJsWebSocketHandler
および WebSocketServerSockJsSession
を使用して SockJS 処理を追加します。 また、HandshakeHandler
を実装して、SockJS URL "/websocket" での生の WebSocket 通信をサポートします。
- 導入:
- 4.0
- 作成者:
- Rossen Stoyanchev
フィールドサマリー
クラス org.springframework.web.socket.sockjs.transport.handler.AbstractTransportHandler から継承されたフィールド
logger
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明boolean
checkSessionType
(SockJsSession session) 指定されたセッションの型がこのTransportHandler
のトランスポート型と一致するかどうかを確認します。ここで、セッション ID とトランスポート型は SockJS URL から抽出されます。createSession
(StringSE id, WebSocketHandler handler, MapSE<StringSE, ObjectSE> attrs) 新しい SockJS セッションを作成します。boolean
doHandshake
(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler handler, MapSE<StringSE, ObjectSE> attributes) ハンドシェイクを開始します。このハンドラーでサポートされているトランスポート型を返します。void
handleRequest
(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, SockJsSession wsSession) 指定されたリクエストを処理し、提供されたWebSocketHandler
にメッセージを委譲します。boolean
このコンポーネントが現在実行されているかどうかを確認します。void
setServletContext
(ServletContextEE servletContext) このオブジェクトが実行されるServletContext
EE を設定します。void
start()
このコンポーネントを起動します。void
stop()
このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。クラス org.springframework.web.socket.sockjs.transport.handler.AbstractTransportHandler から継承されたメソッド
getServiceConfig, initialize
コンストラクターの詳細
WebSocketTransportHandler
メソッドの詳細
getTransportType
インターフェースからコピーされた説明:TransportHandler
このハンドラーでサポートされているトランスポート型を返します。- 次で指定:
- インターフェース
TransportHandler
のgetTransportType
getHandshakeHandler
setServletContext
インターフェースからコピーされた説明:ServletContextAware
このオブジェクトが実行されるServletContext
EE を設定します。通常の Bean プロパティの設定後、InitializingBean の
afterPropertiesSet
またはカスタム init メソッドのような初期コールバックの前に呼び出されます。ApplicationContextAware のsetApplicationContext
の後に呼び出されます。- 次で指定:
- インターフェース
ServletContextAware
のsetServletContext
- パラメーター:
servletContext
- このオブジェクトによって使用される ServletContext オブジェクト- 関連事項:
start
public void start()インターフェースからコピーされた説明:Lifecycle
このコンポーネントを起動します。コンポーネントがすでに実行されている場合は、例外をスローしないでください。
コンテナーの場合、これは適用されるすべてのコンポーネントに開始シグナルを伝播します。
stop
public void stop()インターフェースからコピーされた説明:Lifecycle
このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。非同期停止動作が必要な場合は、SmartLifecycle
とそのstop(Runnable)
バリアントの実装を検討してください。この停止通知は破棄前に送信されるとは限らないことに注意してください。通常のシャットダウンでは、一般的な破棄コールバックが伝播される前に、
Lifecycle
Bean は最初に停止通知を受信します。ただし、コンテキストの存続期間中のホットリフレッシュまたは中断されたリフレッシュ試行では、特定の Bean の destroy メソッドが、停止シグナルを事前に考慮することなく呼び出されます。コンポーネントが実行されていない(まだ開始されていない)場合は、例外をスローしないでください。
コンテナーの場合、これは停止シグナルを適用するすべてのコンポーネントに伝播します。
isRunning
public boolean isRunning()インターフェースからコピーされた説明:Lifecycle
このコンポーネントが現在実行されているかどうかを確認します。コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、
true
を返します。checkSessionType
インターフェースからコピーされた説明:TransportHandler
指定されたセッションの型がこのTransportHandler
のトランスポート型と一致するかどうかを確認します。ここで、セッション ID とトランスポート型は SockJS URL から抽出されます。- 次で指定:
- インターフェース
TransportHandler
のcheckSessionType
- 戻り値:
- セッションが一致する場合(したがって
TransportHandler.handleRequest(org.springframework.http.server.ServerHttpRequest, org.springframework.http.server.ServerHttpResponse, org.springframework.web.socket.WebSocketHandler, org.springframework.web.socket.sockjs.transport.SockJsSession)
によって受け入れられる場合)はtrue
、そうでない場合はfalse
createSession
public AbstractSockJsSession createSession(StringSE id, WebSocketHandler handler, MapSE<StringSE, ObjectSE> attrs) インターフェースからコピーされた説明:SockJsSessionFactory
新しい SockJS セッションを作成します。- 次で指定:
- インターフェース
SockJsSessionFactory
のcreateSession
- パラメーター:
id
- セッションの IDhandler
- 基礎となるWebSocketHandler
attrs
- ハンドシェイクリクエスト固有の属性- 戻り値:
- 新しいセッション、決して
null
handleRequest
public void handleRequest(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, SockJsSession wsSession) throws SockJsException インターフェースからコピーされた説明:TransportHandler
指定されたリクエストを処理し、提供されたWebSocketHandler
にメッセージを委譲します。- 次で指定:
- インターフェース
TransportHandler
のhandleRequest
- パラメーター:
request
- 現在のリクエストresponse
- 現在のレスポンスwsHandler
- ターゲット WebSocketHandler (非null
)wsSession
- SockJS セッション (非null
)- 例外:
SockJsException
-SockJsService
に従ってリクエスト処理が失敗したときに発生します
doHandshake
public boolean doHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler handler, MapSE<StringSE, ObjectSE> attributes) throws HandshakeFailureExceptionインターフェースからコピーされた説明:HandshakeHandler
ハンドシェイクを開始します。- 次で指定:
- インターフェース
HandshakeHandler
のdoHandshake
- パラメーター:
request
- 現在のリクエストresponse
- 現在のレスポンスhandler
- WebSocket メッセージを処理するハンドラー。ハンドラーに接続ごとのライフサイクルを提供する方法については、PerConnectionWebSocketHandler
を参照してください。attributes
- WebSocket セッションに関連付ける HTTP ハンドシェイクの属性。提供された属性がコピーされ、元のマップは使用されません。- 戻り値:
- 握手交渉が成功したかどうか。どちらの場合も、レスポンスステータス、ヘッダー、本文は、交渉の結果を反映するように更新されます
- 例外:
HandshakeFailureException
- 内部の回復不可能なエラー(つまり、ハンドシェイクのネゴシエーションに失敗したのではなくサーバーエラー)が原因でハンドシェイク処理が完了しなかった場合にスローされます。