クラス WebSocketTransportHandler

java.lang.ObjectSE
org.springframework.web.socket.sockjs.transport.handler.AbstractTransportHandler
org.springframework.web.socket.sockjs.transport.handler.WebSocketTransportHandler
実装されたすべてのインターフェース:
AwareLifecycleServletContextAwareHandshakeHandlerSockJsSessionFactoryTransportHandler

public class WebSocketTransportHandler extends AbstractTransportHandler implements SockJsSessionFactory, HandshakeHandler, Lifecycle, ServletContextAware
WebSocket ベースの TransportHandlerSockJsWebSocketHandler および WebSocketServerSockJsSession を使用して SockJS 処理を追加します。

また、HandshakeHandler を実装して、SockJS URL "/websocket" での生の WebSocket 通信をサポートします。

導入:
4.0
作成者:
Rossen Stoyanchev
  • コンストラクターの詳細

    • WebSocketTransportHandler

      public WebSocketTransportHandler(HandshakeHandler handshakeHandler)
  • メソッドの詳細

    • getTransportType

      public TransportType getTransportType()
      インターフェースからコピーされた説明: TransportHandler
      このハンドラーでサポートされているトランスポート型を返します。
      次で指定:
      インターフェース TransportHandlergetTransportType 
    • getHandshakeHandler

      public HandshakeHandler getHandshakeHandler()
    • setServletContext

      public void setServletContext(ServletContextEE servletContext)
      インターフェースからコピーされた説明: ServletContextAware
      このオブジェクトが実行される ServletContextEE を設定します。

      通常の Bean プロパティの設定後、InitializingBean の afterPropertiesSet またはカスタム init メソッドのような初期コールバックの前に呼び出されます。ApplicationContextAware の setApplicationContext の後に呼び出されます。

      次で指定:
      インターフェース ServletContextAwaresetServletContext 
      パラメーター:
      servletContext - このオブジェクトによって使用される ServletContext オブジェクト
      関連事項:
    • start

      public void start()
      インターフェースからコピーされた説明: Lifecycle
      このコンポーネントを起動します。

      コンポーネントがすでに実行されている場合は、例外をスローしないでください。

      コンテナーの場合、これは適用されるすべてのコンポーネントに開始信号を伝播します。

      次で指定:
      インターフェース Lifecyclestart 
      関連事項:
    • stop

      public void stop()
      インターフェースからコピーされた説明: Lifecycle
      このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。非同期停止動作が必要な場合は、SmartLifecycle とその stop(Runnable) バリアントの実装を検討してください。

      この停止通知は破棄前に送信されるとは限らないことに注意してください。通常のシャットダウンでは、一般的な破棄コールバックが伝播される前に、Lifecycle Bean は最初に停止通知を受信します。ただし、コンテキストの存続期間中のホットリフレッシュまたは中断されたリフレッシュ試行では、特定の Bean の destroy メソッドが、停止信号を事前に考慮することなく呼び出されます。

      コンポーネントが実行されていない(まだ開始されていない)場合は、例外をスローしないでください。

      コンテナーの場合、これは停止信号を適用するすべてのコンポーネントに伝播します。

      次で指定:
      インターフェース Lifecyclestop 
      関連事項:
    • isRunning

      public boolean isRunning()
      インターフェースからコピーされた説明: Lifecycle
      このコンポーネントが現在実行されているかどうかを確認します。

      コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、true を返します。

      次で指定:
      インターフェース LifecycleisRunning 
      戻り値:
      コンポーネントが現在実行中かどうか
    • checkSessionType

      public boolean checkSessionType(SockJsSession session)
      インターフェースからコピーされた説明: TransportHandler
      指定されたセッションの型がこの TransportHandler のトランスポート型と一致するかどうかを確認します。ここで、セッション ID とトランスポート型は SockJS URL から抽出されます。
      次で指定:
      インターフェース TransportHandlercheckSessionType 
      戻り値:
      セッションが一致する場合(したがって 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 セッションを作成します。
      次で指定:
      インターフェース SockJsSessionFactorycreateSession 
      パラメーター:
      id - セッションの ID
      handler - 基礎となる WebSocketHandler
      attrs - ハンドシェイクリクエスト固有の属性
      戻り値:
      新しいセッション、決して null
    • handleRequest

      public void handleRequest(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, SockJsSession wsSession) throws SockJsException
      インターフェースからコピーされた説明: TransportHandler
      指定されたリクエストを処理し、提供された WebSocketHandler にメッセージを委譲します。
      次で指定:
      インターフェース TransportHandlerhandleRequest 
      パラメーター:
      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
      ハンドシェイクを開始します。
      次で指定:
      インターフェース HandshakeHandlerdoHandshake 
      パラメーター:
      request - 現在のリクエスト
      response - 現在のレスポンス
      handler - WebSocket メッセージを処理するハンドラー。ハンドラーに接続ごとのライフサイクルを提供する方法については、PerConnectionWebSocketHandler を参照してください。
      attributes - WebSocket セッションに関連付ける HTTP ハンドシェイクの属性。提供された属性がコピーされ、元のマップは使用されません。
      戻り値:
      握手交渉が成功したかどうか。どちらの場合も、レスポンスステータス、ヘッダー、本文は、交渉の結果を反映するように更新されます
      例外:
      HandshakeFailureException - 内部の回復不可能なエラー(つまり、ハンドシェイクのネゴシエーションに失敗したのではなくサーバーエラー)が原因でハンドシェイク処理が完了しなかった場合にスローされます。