クラス StompSubProtocolHandler
java.lang.ObjectSE
org.springframework.web.socket.messaging.StompSubProtocolHandler
- 実装されたすべてのインターフェース:
Aware
、ApplicationEventPublisherAware
、SubProtocolHandler
public class StompSubProtocolHandler
extends ObjectSE
implements SubProtocolHandler, ApplicationEventPublisherAware
STOMP 仕様のバージョン 1.0, 1.1,, 1.2 をサポートする STOMP 用の
SubProtocolHandler
。- 導入:
- 4.0
- 作成者:
- Rossen Stoyanchev, Andy Wilkinson
ネストされたクラスのサマリー
フィールドサマリー
修飾子と型フィールド説明static final StringSE
WebSocket セッションで認証されたユーザーの名前を示す、CONNECTED フレームに設定されたヘッダーの名前。static final int
このハンドラーは、複数の WebSocket メッセージに分割された大きな STOMP メッセージの組み立てをサポートし、STOMP クライアント(stomp.js など)は実際に 16K 境界で大きな STOMP メッセージを分割します。コンストラクターのサマリー
方法の概要
修飾子と型メソッド説明void
afterSessionEnded
(WebSocketSession session, CloseStatus closeStatus, MessageChannel outputChannel) WebSocketSession
が終了した後に呼び出されます。void
afterSessionStarted
(WebSocketSession session, MessageChannel outputChannel) WebSocketSession
が開始した後に呼び出されます。設定されたエラーハンドラーを返します。設定済みのヘッダー初期化子を返します。int
設定されたメッセージバッファサイズの制限をバイト単位で取得します。getStats()
内部状態とカウンターを含む構造化オブジェクトを返します。内部状態とカウンタを記述する文字列を返します。このハンドラーでサポートされているサブプロトコルのリストを返します(非null
)。void
handleMessageFromClient
(WebSocketSession session, WebSocketMessage<?> webSocketMessage, MessageChannel targetChannel) クライアントからの受信 WebSocket メッセージを処理します。void
handleMessageToClient
(WebSocketSession session, Message<?> message) WebSocket クライアントに戻る STOMP メッセージを処理します。boolean
ハンドラーが受信メッセージを受信した順序で処理するように構成されているかどうか。resolveSessionId
(Message<?> message) 指定されたメッセージからセッション ID を解決するか、null
を返します。void
setApplicationEventPublisher
(ApplicationEventPublisher applicationEventPublisher) このオブジェクトが実行される ApplicationEventPublisher を設定します。void
setDecoder
(StompDecoder decoder) STOMP フレームをデコードするためにStompDecoder
を構成します。void
setEncoder
(StompEncoder encoder) STOMP フレームのエンコード用にStompEncoder
を構成します。void
setErrorHandler
(StompSubProtocolErrorHandler errorHandler) クライアントに送信されるエラーメッセージのハンドラーを構成します。これにより、エラーメッセージをカスタマイズしたり、送信されないようにすることができます。void
setHeaderInitializer
(MessageHeaderInitializer headerInitializer) MessageHeaderInitializer
を構成して、デコードされた STOMP フレームから作成されたすべてのメッセージと、クライアントの受信チャネルに送信された他のメッセージのヘッダーに適用します。void
setMessageSizeLimit
(int messageSizeLimit) 受信 STOMP メッセージに許可される最大サイズを構成します。void
setPreserveReceiveOrder
(boolean preserveReceiveOrder) クライアントメッセージを受信した順序で処理する必要があるかどうか。protected StompHeaderAccessor
toMutableAccessor
(StompHeaderAccessor headerAccessor, Message<?> message) toString()
フィールドの詳細
MINIMUM_WEBSOCKET_MESSAGE_SIZE
public static final int MINIMUM_WEBSOCKET_MESSAGE_SIZEこのハンドラーは、複数の WebSocket メッセージに分割された大きな STOMP メッセージの組み立てをサポートし、STOMP クライアント(stomp.js など)は実際に 16K 境界で大きな STOMP メッセージを分割します。そのため、WebSocket サーバーの入力メッセージバッファーサイズは、少なくとも 16K に加えて、SockJS フレーミング用に少し余分に必要です。- 関連事項:
CONNECTED_USER_HEADER
WebSocket セッションで認証されたユーザーの名前を示す、CONNECTED フレームに設定されたヘッダーの名前。- 関連事項:
コンストラクターの詳細
StompSubProtocolHandler
public StompSubProtocolHandler()
メソッドの詳細
setErrorHandler
クライアントに送信されるエラーメッセージのハンドラーを構成します。これにより、エラーメッセージをカスタマイズしたり、送信されないようにすることができます。デフォルトでは、これは設定されていません。その場合、エラーを反映するメッセージヘッダーとともに ERROR フレームが送信されます。
- パラメーター:
errorHandler
- エラーハンドラー
getErrorHandler
設定されたエラーハンドラーを返します。setMessageSizeLimit
public void setMessageSizeLimit(int messageSizeLimit) 受信 STOMP メッセージに許可される最大サイズを構成します。STOMP メッセージは複数の WebSocket メッセージで受信できるため、バッファリングが必要になる場合があり、許可される最大メッセージサイズを知る必要があります。デフォルトでは、このプロパティは 64K に設定されています。
- 導入:
- 4.0.3
getMessageSizeLimit
public int getMessageSizeLimit()設定されたメッセージバッファサイズの制限をバイト単位で取得します。- 導入:
- 4.0.3
setEncoder
STOMP フレームのエンコード用にStompEncoder
を構成します。- 導入:
- 4.3.5
setDecoder
STOMP フレームをデコードするためにStompDecoder
を構成します。- 導入:
- 4.3.5
setHeaderInitializer
MessageHeaderInitializer
を構成して、デコードされた STOMP フレームから作成されたすべてのメッセージと、クライアントの受信チャネルに送信された他のメッセージのヘッダーに適用します。デフォルトでは、このプロパティは設定されていません。
getHeaderInitializer
設定済みのヘッダー初期化子を返します。setPreserveReceiveOrder
public void setPreserveReceiveOrder(boolean preserveReceiveOrder) クライアントメッセージを受信した順序で処理する必要があるかどうか。デフォルトでは、
"clientInboundChannel"
に送信されたメッセージは同じ順序で処理されない可能性があります。これは、チャネルが ThreadPoolExecutor によってサポートされており、順序どおりに処理されることが保証されていないためです。このフラグが
true
に設定されている場合、同じセッション内のメッセージは、受信された順序を維持するために一度に 1 つずつ"clientInboundChannel"
に送信されます。- パラメーター:
preserveReceiveOrder
- 順番に公開するかどうか- 導入:
- 6.1
isPreserveReceiveOrder
public boolean isPreserveReceiveOrder()ハンドラーが受信メッセージを受信した順序で処理するように構成されているかどうか。- 導入:
- 6.1
getSupportedProtocols
インターフェースからコピーされた説明:SubProtocolHandler
このハンドラーでサポートされているサブプロトコルのリストを返します(非null
)。- 次で指定:
- インターフェース
SubProtocolHandler
のgetSupportedProtocols
setApplicationEventPublisher
インターフェースからコピーされた説明:ApplicationEventPublisherAware
このオブジェクトが実行される ApplicationEventPublisher を設定します。通常の Bean プロパティの設定後、InitializingBean の afterPropertiesSet などの init コールバックやカスタム init メソッドの前に呼び出されます。ApplicationContextAware の setApplicationContext の前に呼び出されます。
- 次で指定:
- インターフェース
ApplicationEventPublisherAware
のsetApplicationEventPublisher
- パラメーター:
applicationEventPublisher
- このオブジェクトによって使用されるイベント発行元
getStatsInfo
内部状態とカウンタを説明する文字列を返します。事実上、getStats()
上のtoString()
。getStats
内部状態とカウンターを含む構造化オブジェクトを返します。- 導入:
- 5.2
handleMessageFromClient
public void handleMessageFromClient(WebSocketSession session, WebSocketMessage<?> webSocketMessage, MessageChannel targetChannel) クライアントからの受信 WebSocket メッセージを処理します。- 次で指定:
- インターフェース
SubProtocolHandler
のhandleMessageFromClient
- パラメーター:
session
- クライアントセッションwebSocketMessage
- クライアントメッセージtargetChannel
- メッセージを送信する出力チャネル
handleMessageToClient
WebSocket クライアントに戻る STOMP メッセージを処理します。- 次で指定:
- インターフェース
SubProtocolHandler
のhandleMessageToClient
- パラメーター:
session
- クライアントセッションmessage
- クライアントメッセージ
toMutableAccessor
protected StompHeaderAccessor toMutableAccessor(StompHeaderAccessor headerAccessor, Message<?> message) resolveSessionId
インターフェースからコピーされた説明:SubProtocolHandler
指定されたメッセージからセッション ID を解決するか、null
を返します。- 次で指定:
- インターフェース
SubProtocolHandler
のresolveSessionId
- パラメーター:
message
- セッション ID を解決するメッセージ
afterSessionStarted
インターフェースからコピーされた説明:SubProtocolHandler
WebSocketSession
が開始した後に呼び出されます。- 次で指定:
- インターフェース
SubProtocolHandler
のafterSessionStarted
- パラメーター:
session
- クライアントセッションoutputChannel
- チャンネル
afterSessionEnded
public void afterSessionEnded(WebSocketSession session, CloseStatus closeStatus, MessageChannel outputChannel) インターフェースからコピーされた説明:SubProtocolHandler
WebSocketSession
が終了した後に呼び出されます。- 次で指定:
- インターフェース
SubProtocolHandler
のafterSessionEnded
- パラメーター:
session
- クライアントセッションcloseStatus
- セッションが閉じられた理由outputChannel
- チャンネル
toString