クラス AbstractSockJsSession

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

public abstract class AbstractSockJsSession extends ObjectSE implements SockJsSession
SockJsSession を実装する SockJS セッションの抽象基本クラス。
導入:
4.0
作成者:
Rossen Stoyanchev, Sam Brannen
  • フィールドの詳細

  • コンストラクターの詳細

    • AbstractSockJsSession

      public AbstractSockJsSession(StringSE id, SockJsServiceConfig config, WebSocketHandler handler, @Nullable MapSE<StringSE,ObjectSE> attributes)
      新しいインスタンスを作成します。
      パラメーター:
      id - セッション ID
      config - SockJS サービス構成オプション
      handler - SockJS メッセージの受信者
      attributes - WebSocket セッションに関連付ける HTTP ハンドシェイクの属性。提供された属性がコピーされ、元のマップは使用されません。
  • メソッドの詳細

    • getId

      public StringSE getId()
      インターフェースからコピーされた説明: WebSocketSession
      一意のセッション識別子を返します。
      次で指定:
      インターフェース WebSocketSessiongetId 
    • getMessageCodec

      protected SockJsMessageCodec getMessageCodec()
    • getSockJsServiceConfig

      public SockJsServiceConfig getSockJsServiceConfig()
    • getAttributes

      public MapSE<StringSE,ObjectSE> getAttributes()
      インターフェースからコピーされた説明: WebSocketSession
      WebSocket セッションに関連付けられた属性を持つマップを返します。

      サーバー側では、最初に HandshakeInterceptor を介してマップにデータを入力できます。クライアント側では、WebSocketClient ハンドシェイクメソッドを介してマップにデータを入力できます。

      次で指定:
      インターフェース WebSocketSessiongetAttributes 
      戻り値:
      セッション属性を持つマップ (非 null)
    • sendMessage

      public final void sendMessage(WebSocketMessage<?> message) throws IOExceptionSE
      インターフェースからコピーされた説明: WebSocketSession
      WebSocket メッセージを送信する: TextMessage または BinaryMessage のいずれか。

      注意 : 基盤となる標準の WebSocket セッション(JSR-356)では、同時送信は許可されていません。送信を同期する必要があります。これを確実にするための 1 つのオプションは、WebSocketSession を ConcurrentWebSocketSessionDecorator でラップすることです。

      次で指定:
      インターフェース WebSocketSessionsendMessage 
      例外:
      IOExceptionSE
      関連事項:
    • sendMessageInternal

      protected abstract void sendMessageInternal(StringSE message) throws IOExceptionSE
      例外:
      IOExceptionSE
    • isNew

      public boolean isNew()
    • isOpen

      public boolean isOpen()
      インターフェースからコピーされた説明: WebSocketSession
      基になる接続が開いているかどうか。
      次で指定:
      インターフェース WebSocketSessionisOpen 
    • isClosed

      public boolean isClosed()
    • close

      public final void close() throws IOExceptionSE
      クリーンアップを実行し、WebSocketHandler に通知します。
      次で指定:
      インターフェース AutoCloseableSEclose 
      次で指定:
      インターフェース CloseableSEclose 
      次で指定:
      インターフェース WebSocketSessionclose 
      例外:
      IOExceptionSE
    • close

      public final void close(CloseStatus status) throws IOExceptionSE
      クリーンアップを実行し、WebSocketHandler に通知します。
      次で指定:
      インターフェース WebSocketSessionclose 
      例外:
      IOExceptionSE
    • getTimeSinceLastActive

      public long getTimeSinceLastActive()
      インターフェースからコピーされた説明: SockJsSession
      セッションが最後にアクティブになってからの時間(ミリ秒単位)を返します。セッションが新しい場合は、セッションが作成されてからの時間を返します。
      次で指定:
      インターフェース SockJsSessiongetTimeSinceLastActive 
    • updateLastActiveTime

      protected void updateLastActiveTime()
      セッションが非アクティブになるたびに呼び出されます。
    • disableHeartbeat

      public void disableHeartbeat()
      インターフェースからコピーされた説明: SockJsSession
      SockJS ハートビートを無効にします。これは、おそらく上位レベルのプロトコルですでにセッションに対してハートビートが有効になっているためです。プロキシが接続がハングしていないことを知るのに役立つため、これを無効にすることはお勧めしません。
      次で指定:
      インターフェース SockJsSessiondisableHeartbeat 
    • sendHeartbeat

      protected void sendHeartbeat() throws SockJsTransportFailureException
      例外:
      SockJsTransportFailureException
    • scheduleHeartbeat

      protected void scheduleHeartbeat()
    • cancelHeartbeat

      protected void cancelHeartbeat()
    • isActive

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

      protected abstract void disconnect(CloseStatus status) throws IOExceptionSE
      実際に基になる WebSocket セッションを閉じるか、HTTP トランスポートの場合は基になるリクエストを完了します。
      例外:
      IOExceptionSE
    • writeFrame

      protected void writeFrame(SockJsFrame frame) throws SockJsTransportFailureException
      TransportHandler および(TransportHandler 固有の)セッションクラス内で内部的に使用します。
      例外:
      SockJsTransportFailureException
    • writeFrameInternal

      protected abstract void writeFrameInternal(SockJsFrame frame) throws IOExceptionSE
      例外:
      IOExceptionSE
    • delegateConnectionEstablished

      public void delegateConnectionEstablished() throws ExceptionSE
      例外:
      ExceptionSE
    • delegateMessages

      public void delegateMessages(StringSE... messages) throws SockJsMessageDeliveryException
      例外:
      SockJsMessageDeliveryException
    • delegateConnectionClosed

      public final void delegateConnectionClosed(CloseStatus status) throws ExceptionSE
      基本となる接続が閉じられたときに呼び出されます。
      例外:
      ExceptionSE
    • tryCloseWithSockJsTransportError

      public void tryCloseWithSockJsTransportError(ThrowableSE error, CloseStatus closeStatus)
      SockJS トランスポートの処理に起因するエラーのため、終了します。
    • delegateError

      public void delegateError(ThrowableSE ex) throws ExceptionSE
      例外:
      ExceptionSE
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString