クラス AbstractSockJsSession
java.lang.ObjectSE
org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession
- 実装されたすべてのインターフェース:
CloseableSE
、AutoCloseableSE
、SockJsSession
、WebSocketSession
SockJsSession
を実装する SockJS セッションの抽象基本クラス。- 導入:
- 4.0
- 作成者:
- Rossen Stoyanchev, Sam Brannen
フィールドサマリー
コンストラクターのサマリー
コンストラクター説明AbstractSockJsSession
(StringSE id, SockJsServiceConfig config, WebSocketHandler handler, MapSE<StringSE, ObjectSE> attributes) 新しいインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明protected void
final void
close()
クリーンアップを実行し、WebSocketHandler
に通知します。final void
close
(CloseStatus status) クリーンアップを実行し、WebSocketHandler
に通知します。final void
delegateConnectionClosed
(CloseStatus status) 基本となる接続が閉じられたときに呼び出されます。void
void
void
delegateMessages
(StringSE... messages) void
SockJS ハートビートを無効にします。これは、おそらく上位レベルのプロトコルですでにセッションに対してハートビートが有効になっているためです。protected abstract void
disconnect
(CloseStatus status) 実際に基になる WebSocket セッションを閉じるか、HTTP トランスポートの場合は基になるリクエストを完了します。WebSocket セッションに関連付けられた属性を持つマップを返します。getId()
一意のセッション識別子を返します。protected SockJsMessageCodec
long
セッションが最後にアクティブになってからの時間(ミリ秒単位)を返します。セッションが新しい場合は、セッションが作成されてからの時間を返します。abstract boolean
isActive()
ポーリングセッションとストリーミングセッションは、定期的に現在の HTTP リクエストを閉じ、次のリクエストが送信されるのを待ちます。boolean
isClosed()
boolean
isNew()
boolean
isOpen()
基になる接続が開いているかどうか。protected void
protected void
final void
sendMessage
(WebSocketMessage<?> message) WebSocket メッセージを送信する:TextMessage
またはBinaryMessage
のいずれか。protected abstract void
sendMessageInternal
(StringSE message) toString()
void
tryCloseWithSockJsTransportError
(ThrowableSE error, CloseStatus closeStatus) SockJS トランスポートの処理に起因するエラーのため、終了します。protected void
セッションが非アクティブになるたびに呼び出されます。protected void
writeFrame
(SockJsFrame frame) TransportHandler および(TransportHandler 固有の)セッションクラス内で内部的に使用します。protected abstract void
writeFrameInternal
(SockJsFrame frame) クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
インターフェース org.springframework.web.socket.WebSocketSession から継承されたメソッド
getAcceptedProtocol, getBinaryMessageSizeLimit, getExtensions, getHandshakeHeaders, getLocalAddress, getPrincipal, getRemoteAddress, getTextMessageSizeLimit, getUri, setBinaryMessageSizeLimit, setTextMessageSizeLimit
フィールドの詳細
DISCONNECTED_CLIENT_LOG_CATEGORY
クライアントが離れた後のネットワーク障害に使用するログカテゴリ。logger
responseLock
コンストラクターの詳細
AbstractSockJsSession
public AbstractSockJsSession(StringSE id, SockJsServiceConfig config, WebSocketHandler handler, @Nullable MapSE<StringSE, ObjectSE> attributes) 新しいインスタンスを作成します。- パラメーター:
id
- セッション IDconfig
- SockJS サービス構成オプションhandler
- SockJS メッセージの受信者attributes
- WebSocket セッションに関連付ける HTTP ハンドシェイクの属性。提供された属性がコピーされ、元のマップは使用されません。
メソッドの詳細
getId
インターフェースからコピーされた説明:WebSocketSession
一意のセッション識別子を返します。- 次で指定:
- インターフェース
WebSocketSession
のgetId
getMessageCodec
getSockJsServiceConfig
getAttributes
インターフェースからコピーされた説明:WebSocketSession
WebSocket セッションに関連付けられた属性を持つマップを返します。サーバー側では、最初に
HandshakeInterceptor
を介してマップにデータを入力できます。クライアント側では、WebSocketClient
ハンドシェイクメソッドを介してマップにデータを入力できます。- 次で指定:
- インターフェース
WebSocketSession
のgetAttributes
- 戻り値:
- セッション属性を持つマップ (非
null
)
sendMessage
インターフェースからコピーされた説明:WebSocketSession
WebSocket メッセージを送信する:TextMessage
またはBinaryMessage
のいずれか。注意 : 基盤となる標準の WebSocket セッション(JSR-356)では、同時送信は許可されていません。送信を同期する必要があります。これを確実にするための 1 つのオプションは、
WebSocketSession
をConcurrentWebSocketSessionDecorator
でラップすることです。- 次で指定:
- インターフェース
WebSocketSession
のsendMessage
- 例外:
IOExceptionSE
- 関連事項:
sendMessageInternal
isNew
public boolean isNew()isOpen
public boolean isOpen()インターフェースからコピーされた説明:WebSocketSession
基になる接続が開いているかどうか。- 次で指定:
- インターフェース
WebSocketSession
のisOpen
isClosed
public boolean isClosed()close
クリーンアップを実行し、WebSocketHandler
に通知します。- 次で指定:
- インターフェース
AutoCloseableSE
のclose
- 次で指定:
- インターフェース
CloseableSE
のclose
- 次で指定:
- インターフェース
WebSocketSession
のclose
- 例外:
IOExceptionSE
close
クリーンアップを実行し、WebSocketHandler
に通知します。- 次で指定:
- インターフェース
WebSocketSession
のclose
- 例外:
IOExceptionSE
getTimeSinceLastActive
public long getTimeSinceLastActive()インターフェースからコピーされた説明:SockJsSession
セッションが最後にアクティブになってからの時間(ミリ秒単位)を返します。セッションが新しい場合は、セッションが作成されてからの時間を返します。- 次で指定:
- インターフェース
SockJsSession
のgetTimeSinceLastActive
updateLastActiveTime
protected void updateLastActiveTime()セッションが非アクティブになるたびに呼び出されます。disableHeartbeat
public void disableHeartbeat()インターフェースからコピーされた説明:SockJsSession
SockJS ハートビートを無効にします。これは、おそらく上位レベルのプロトコルですでにセッションに対してハートビートが有効になっているためです。プロキシが接続がハングしていないことを知るのに役立つため、これを無効にすることはお勧めしません。- 次で指定:
- インターフェース
SockJsSession
のdisableHeartbeat
sendHeartbeat
scheduleHeartbeat
protected void scheduleHeartbeat()cancelHeartbeat
protected void cancelHeartbeat()isActive
public abstract boolean isActive()ポーリングセッションとストリーミングセッションは、定期的に現在の HTTP リクエストを閉じ、次のリクエストが送信されるのを待ちます。この「ダウンタイム」の間、セッションはまだ開いていますが、非アクティブであり、メッセージを送信できないため、メッセージを一時的にバッファする必要があります。対照的に、WebSocket セッションはステートフルであり、閉じられるまでアクティブのままです。disconnect
実際に基になる WebSocket セッションを閉じるか、HTTP トランスポートの場合は基になるリクエストを完了します。writeFrame
TransportHandler および(TransportHandler 固有の)セッションクラス内で内部的に使用します。writeFrameInternal
delegateConnectionEstablished
- 例外:
ExceptionSE
delegateMessages
delegateConnectionClosed
基本となる接続が閉じられたときに呼び出されます。- 例外:
ExceptionSE
tryCloseWithSockJsTransportError
SockJS トランスポートの処理に起因するエラーのため、終了します。delegateError
- 例外:
ExceptionSE
toString