クラス AbstractHttpSockJsSession

java.lang.ObjectSE
org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession
org.springframework.web.socket.sockjs.transport.session.AbstractHttpSockJsSession
実装されたすべてのインターフェース:
CloseableSEAutoCloseableSESockJsSessionWebSocketSession
既知の直属サブクラス
PollingSockJsSessionStreamingSockJsSession

public abstract class AbstractHttpSockJsSession extends AbstractSockJsSession
HTTP トランスポート SockJS セッションで使用する抽象基本クラス。
導入:
4.0
作成者:
Rossen Stoyanchev
  • コンストラクターの詳細

  • メソッドの詳細

    • getUri

      public URISE getUri()
      インターフェースからコピーされた説明: WebSocketSession
      WebSocket 接続を開くために使用される URI を返します。
    • getHandshakeHeaders

      public HttpHeaders getHandshakeHeaders()
      インターフェースからコピーされた説明: WebSocketSession
      ハンドシェイクリクエストで使用されるヘッダーを返します(非 null)。
    • getPrincipal

      @Nullable public PrincipalSE getPrincipal()
      インターフェースからコピーされた説明: WebSocketSession
      認証されたユーザーの名前を含む PrincipalSE インスタンスを返します。

      ユーザーが認証されていない場合、メソッドは null を返します。

    • getLocalAddress

      @Nullable public InetSocketAddressSE getLocalAddress()
      インターフェースからコピーされた説明: WebSocketSession
      リクエストが受信されたアドレスを返します。
    • getRemoteAddress

      @Nullable public InetSocketAddressSE getRemoteAddress()
      インターフェースからコピーされた説明: WebSocketSession
      リモートクライアントのアドレスを返します。
    • setAcceptedProtocol

      public void setAcceptedProtocol(@Nullable StringSE protocol)
      サブプロトコルネゴシエーションが最初のハンドシェイクの一部である WebSocket とは異なり、HTTP トランスポートでは、同じネゴシエーションをエミュレートし、選択したプロトコルをこの setter を介して設定する必要があります。
      パラメーター:
      protocol - 設定するサブプロトコル
    • getAcceptedProtocol

      @Nullable public StringSE getAcceptedProtocol()
      使用する選択したサブプロトコルを返します。
      戻り値:
      プロトコル識別子、またはプロトコルが指定されていないか正常にネゴシエートされた場合は null 
    • getMessageCache

      protected QueueSE<StringSE> getMessageCache()
      ポーリングリクエスト間で透過的に保存されたメッセージの SockJS バッファーを返します。ポーリングリクエストに 5 秒以上かかる場合、セッションは閉じられます。
      関連事項:
    • isActive

      public boolean isActive()
      クラスからコピーされた説明: AbstractSockJsSession
      ポーリングセッションとストリーミングセッションは、定期的に現在の HTTP リクエストを閉じ、次のリクエストが送信されるのを待ちます。この「ダウンタイム」の間、セッションはまだ開いていますが、非アクティブであり、メッセージを送信できないため、メッセージを一時的にバッファする必要があります。対照的に、WebSocket セッションはステートフルであり、閉じられるまでアクティブのままです。
      次で指定:
      クラス AbstractSockJsSessionisActive 
    • setTextMessageSizeLimit

      public void setTextMessageSizeLimit(int messageSizeLimit)
      インターフェースからコピーされた説明: WebSocketSession
      受信テキストメッセージの最大サイズを構成します。
    • getTextMessageSizeLimit

      public int getTextMessageSizeLimit()
      インターフェースからコピーされた説明: WebSocketSession
      受信テキストメッセージの構成済みの最大サイズを取得します。
    • setBinaryMessageSizeLimit

      public void setBinaryMessageSizeLimit(int messageSizeLimit)
      インターフェースからコピーされた説明: WebSocketSession
      受信バイナリメッセージの最大サイズを構成します。
    • getBinaryMessageSizeLimit

      public int getBinaryMessageSizeLimit()
      インターフェースからコピーされた説明: WebSocketSession
      受信バイナリメッセージの構成済みの最大サイズを取得します。
    • getExtensions

      public ListSE<WebSocketExtension> getExtensions()
      インターフェースからコピーされた説明: WebSocketSession
      ネゴシエートされた拡張機能を決定します。
      戻り値:
      拡張機能のリスト、または拡張機能が指定されていないか正常にネゴシエートされていない場合は空のリスト
    • handleInitialRequest

      public void handleInitialRequest(ServerHttpRequest request, ServerHttpResponse response, SockJsFrameFormat frameFormat) throws SockJsException
      SockJS HTTP トランスポートベースのセッションでメッセージを受信するための最初のリクエストを処理します。

      長いポーリングベースのトランスポート( "xhr"、"jsonp" など)は、オープンフレームを書き込んだ後にリクエストを完了します。ストリーミングベースのトランスポート("xhr_streaming"、"eventsource"、および "htmlfile" )は、メッセージフレームをさらにストリーミングするためにレスポンスをより長く開いたままにしますが、ある程度のデータが送信された後、最終的には閉じます。

      パラメーター:
      request - 現在のリクエスト
      response - 現在のレスポンス
      frameFormat - 使用するトランスポート固有の SocksJS フレーム形式
      例外:
      SockJsException
    • handleSuccessiveRequest

      public void handleSuccessiveRequest(ServerHttpRequest request, ServerHttpResponse response, SockJsFrameFormat frameFormat) throws SockJsException
      最初のリクエストを除くすべてのリクエストを処理して、SockJS HTTP トランスポートベースのセッションでメッセージを受信します。

      長いポーリングベースのトランスポート( "xhr"、"jsonp" など)は、バッファリングされたメッセージフレーム(または次のフレーム)を書き込んだ後にリクエストを完了します。ストリーミングベースのトランスポート("xhr_streaming"、"eventsource"、および "htmlfile" )は、メッセージフレームをさらにストリーミングするためにレスポンスをより長く開いたままにしますが、ある程度のデータが送信された後、最終的には閉じます。

      パラメーター:
      request - 現在のリクエスト
      response - 現在のレスポンス
      frameFormat - 使用するトランスポート固有の SocksJS フレーム形式
      例外:
      SockJsException
    • handleRequestInternal

      protected abstract void handleRequestInternal(ServerHttpRequest request, ServerHttpResponse response, boolean initialRequest) throws IOExceptionSE
      SockJS トランスポートリクエストが受信されると呼び出されます。
      パラメーター:
      request - 現在のリクエスト
      response - 現在のレスポンス
      initialRequest - セッションの最初のリクエストかどうか
      例外:
      IOExceptionSE
    • sendMessageInternal

      protected final void sendMessageInternal(StringSE message) throws SockJsTransportFailureException
      次で指定:
      クラス AbstractSockJsSessionsendMessageInternal 
      例外:
      SockJsTransportFailureException
    • flushCache

      protected abstract void flushCache() throws SockJsTransportFailureException
      接続がアクティブで、レスポンスに書き込む準備ができたときに呼び出されます。サブクラスは、"responseLock" が取得されるメソッドからのみこのメソッドを呼び出す必要があります。
      例外:
      SockJsTransportFailureException
    • disconnect

      protected void disconnect(CloseStatus status)
      クラスからコピーされた説明: AbstractSockJsSession
      実際に基になる WebSocket セッションを閉じるか、HTTP トランスポートの場合は基になるリクエストを完了します。
      次で指定:
      クラス AbstractSockJsSessiondisconnect 
    • resetRequest

      protected void resetRequest()
    • writeFrameInternal

      protected void writeFrameInternal(SockJsFrame frame) throws IOExceptionSE
      次で指定:
      クラス AbstractSockJsSessionwriteFrameInternal 
      例外:
      IOExceptionSE