クラス AbstractHttpSockJsSession
java.lang.ObjectSE
org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession
org.springframework.web.socket.sockjs.transport.session.AbstractHttpSockJsSession
- 実装されたすべてのインターフェース:
CloseableSE
、AutoCloseableSE
、SockJsSession
、WebSocketSession
- 既知の直属サブクラス
PollingSockJsSession
,StreamingSockJsSession
HTTP トランスポート SockJS セッションで使用する抽象基本クラス。
- 導入:
- 4.0
- 作成者:
- Rossen Stoyanchev
フィールドサマリー
クラス org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession から継承されたフィールド
DISCONNECTED_CLIENT_LOG_CATEGORY, disconnectedClientLogger, logger, responseLock
コンストラクターのサマリー
コンストラクター説明AbstractHttpSockJsSession
(StringSE id, SockJsServiceConfig config, WebSocketHandler wsHandler, MapSE<StringSE, ObjectSE> attributes) メソッドのサマリー
修飾子と型メソッド説明protected void
disconnect
(CloseStatus status) 実際に基になる WebSocket セッションを閉じるか、HTTP トランスポートの場合は基になるリクエストを完了します。protected abstract void
接続がアクティブで、レスポンスに書き込む準備ができたときに呼び出されます。使用する選択したサブプロトコルを返します。int
受信バイナリメッセージの構成済みの最大サイズを取得します。ネゴシエートされた拡張機能を決定します。ハンドシェイクリクエストで使用されるヘッダーを返します(非null
)。リクエストが受信されたアドレスを返します。ポーリングリクエスト間で透過的に保存されたメッセージの SockJS バッファーを返します。認証されたユーザーの名前を含むPrincipal
SE インスタンスを返します。リモートクライアントのアドレスを返します。int
受信テキストメッセージの構成済みの最大サイズを取得します。getUri()
WebSocket 接続を開くために使用される URI を返します。void
handleInitialRequest
(ServerHttpRequest request, ServerHttpResponse response, SockJsFrameFormat frameFormat) SockJS HTTP トランスポートベースのセッションでメッセージを受信するための最初のリクエストを処理します。protected abstract void
handleRequestInternal
(ServerHttpRequest request, ServerHttpResponse response, boolean initialRequest) SockJS トランスポートリクエストが受信されると呼び出されます。void
handleSuccessiveRequest
(ServerHttpRequest request, ServerHttpResponse response, SockJsFrameFormat frameFormat) 最初のリクエストを除くすべてのリクエストを処理して、SockJS HTTP トランスポートベースのセッションでメッセージを受信します。boolean
isActive()
ポーリングセッションとストリーミングセッションは、定期的に現在の HTTP リクエストを閉じ、次のリクエストが送信されるのを待ちます。protected void
protected final void
sendMessageInternal
(StringSE message) void
setAcceptedProtocol
(StringSE protocol) サブプロトコルネゴシエーションが最初のハンドシェイクの一部である WebSocket とは異なり、HTTP トランスポートでは、同じネゴシエーションをエミュレートし、選択したプロトコルをこの setter を介して設定する必要があります。void
setBinaryMessageSizeLimit
(int messageSizeLimit) 受信バイナリメッセージの最大サイズを構成します。void
setTextMessageSizeLimit
(int messageSizeLimit) 受信テキストメッセージの最大サイズを構成します。protected void
writeFrameInternal
(SockJsFrame frame) クラス org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession から継承されたメソッド
cancelHeartbeat, close, close, delegateConnectionClosed, delegateConnectionEstablished, delegateError, delegateMessages, disableHeartbeat, getAttributes, getId, getMessageCodec, getSockJsServiceConfig, getTimeSinceLastActive, isClosed, isNew, isOpen, scheduleHeartbeat, sendHeartbeat, sendMessage, toString, tryCloseWithSockJsTransportError, updateLastActiveTime, writeFrame
コンストラクターの詳細
AbstractHttpSockJsSession
public AbstractHttpSockJsSession(StringSE id, SockJsServiceConfig config, WebSocketHandler wsHandler, MapSE<StringSE, ObjectSE> attributes)
メソッドの詳細
getUri
インターフェースからコピーされた説明:WebSocketSession
WebSocket 接続を開くために使用される URI を返します。getHandshakeHeaders
インターフェースからコピーされた説明:WebSocketSession
ハンドシェイクリクエストで使用されるヘッダーを返します(非null
)。getPrincipal
インターフェースからコピーされた説明:WebSocketSession
認証されたユーザーの名前を含むPrincipal
SE インスタンスを返します。ユーザーが認証されていない場合、メソッドは
null
を返します。getLocalAddress
インターフェースからコピーされた説明:WebSocketSession
リクエストが受信されたアドレスを返します。getRemoteAddress
インターフェースからコピーされた説明:WebSocketSession
リモートクライアントのアドレスを返します。setAcceptedProtocol
サブプロトコルネゴシエーションが最初のハンドシェイクの一部である WebSocket とは異なり、HTTP トランスポートでは、同じネゴシエーションをエミュレートし、選択したプロトコルをこの setter を介して設定する必要があります。- パラメーター:
protocol
- 設定するサブプロトコル
getAcceptedProtocol
使用する選択したサブプロトコルを返します。- 戻り値:
- プロトコル識別子、またはプロトコルが指定されていないか正常にネゴシエートされた場合は
null
getMessageCache
ポーリングリクエスト間で透過的に保存されたメッセージの SockJS バッファーを返します。ポーリングリクエストに 5 秒以上かかる場合、セッションは閉じられます。isActive
public boolean isActive()クラスからコピーされた説明:AbstractSockJsSession
ポーリングセッションとストリーミングセッションは、定期的に現在の HTTP リクエストを閉じ、次のリクエストが送信されるのを待ちます。この「ダウンタイム」の間、セッションはまだ開いていますが、非アクティブであり、メッセージを送信できないため、メッセージを一時的にバッファする必要があります。対照的に、WebSocket セッションはステートフルであり、閉じられるまでアクティブのままです。- 次で指定:
- クラス
AbstractSockJsSession
のisActive
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
インターフェースからコピーされた説明: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
flushCache
接続がアクティブで、レスポンスに書き込む準備ができたときに呼び出されます。サブクラスは、"responseLock" が取得されるメソッドからのみこのメソッドを呼び出す必要があります。disconnect
クラスからコピーされた説明:AbstractSockJsSession
実際に基になる WebSocket セッションを閉じるか、HTTP トランスポートの場合は基になるリクエストを完了します。- 次で指定:
- クラス
AbstractSockJsSession
のdisconnect
resetRequest
protected void resetRequest()writeFrameInternal
- 次で指定:
- クラス
AbstractSockJsSession
のwriteFrameInternal
- 例外:
IOExceptionSE