クラス StompBrokerRelayMessageHandler
- 実装されたすべてのインターフェース:
Aware
、ApplicationEventPublisherAware
、Lifecycle
、Phased
、SmartLifecycle
、MessageHandler
MessageHandler
。 新しい CONNECT
メッセージごとに、ブローカーへの独立した TCP 接続が開かれ、CONNECT メッセージを発信したクライアントからのすべてのメッセージに対して排他的に使用されます。同じクライアントからのメッセージは、セッション ID メッセージヘッダーで識別されます。逆に、STOMP ブローカーが TCP 接続でメッセージを返信すると、それらのメッセージはクライアントのセッション ID で強化され、コンストラクターに提供された MessageChannel
を介してダウンストリームに返信されます。
このクラスは、(クライアントからではなく)サーバーアプリケーションから発信されたメッセージの送信に使用されるメッセージブローカーへのデフォルトの「システム」TCP 接続も自動的に開きます。このようなメッセージはどのクライアントにも関連付けられていないため、セッション ID ヘッダーはありません。「システム」接続は効果的に共有され、メッセージの受信には使用できません。「システム」接続を構成するために、いくつかのプロパティが提供されています。
- 導入:
- 4.0
- 作成者:
- Rossen Stoyanchev, Andy Wilkinson
ネストされたクラスのサマリー
フィールドサマリー
クラス org.springframework.messaging.simp.broker.AbstractBrokerMessageHandler から継承されたフィールド
logger
インターフェース org.springframework.context.SmartLifecycle から継承されたフィールド
DEFAULT_PHASE
コンストラクターのサマリー
コンストラクター説明StompBrokerRelayMessageHandler
(SubscribableChannel inboundChannel, MessageChannel outboundChannel, SubscribableChannel brokerChannel, CollectionSE<StringSE> destinationPrefixes) 指定されたメッセージチャネルと宛先プレフィックスを使用して StompBrokerRelayMessageHandler インスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明接続されたクライアントに代わって STOMP ブローカーへの接続に使用するように構成されたログインを返します。接続されたクライアントに代わって STOMP ブローカーへの接続に使用する構成済みのパスコードを返します。int
ブローカーへの TCP 接続の現在の数を返します。設定済みのヘッダー初期化子を返します。STOMP メッセージブローカーホストを返します。int
STOMP メッセージブローカーポートを返します。getStats()
内部状態とカウンターを含む構造化オブジェクトを返します。内部状態とカウンタを記述する文字列を返します。long
「システム」接続が STOMP ブローカーからハートビートを受信することを期待している間隔をミリ秒単位で返します。long
「システム」接続がハートビートを STOMP ブローカーに送信する間隔をミリ秒単位で返します。共有「システム」接続に使用されるログインを STOMP ブローカーに返します。STOMP ブローカーへの共有「システム」接続に使用されるパスコードを返します。「システム」接続のサブスクリプションで構成されたマップを返します。TcpOperations<byte[]>
構成された TCP クライアントを取得します(構成されていない限りnull
を呼び出さず、このメソッドはハンドラーが開始される前に呼び出されるため、デフォルトの実装が初期化されます)。構成された仮想ホストの値を返します。protected void
handleMessageInternal
(Message<?> message) void
setClientLogin
(StringSE clientLogin) 接続されたクライアントに代わって STOMP ブローカーへの接続を作成するときに使用するログインを設定します。void
setClientPasscode
(StringSE clientPasscode) 接続されたクライアントに代わって STOMP ブローカーへの接続を作成するために使用するクライアントパスコードを設定します。void
setHeaderInitializer
(MessageHeaderInitializer headerInitializer) クライアントの送信メッセージチャネルに送信される、StompBrokerRelayMessageHandler
を介して作成されたすべてのメッセージのヘッダーに適用するMessageHeaderInitializer
を構成します。void
setRelayHost
(StringSE relayHost) STOMP メッセージブローカーホストを設定します。void
setRelayPort
(int relayPort) STOMP メッセージブローカーポートを設定します。void
setSystemHeartbeatReceiveInterval
(long heartbeatReceiveInterval) 他のデータがない場合に「システム」接続が STOMP ブローカーからハートビートを受信することを期待する最大間隔をミリ秒単位で設定します。void
setSystemHeartbeatSendInterval
(long systemHeartbeatSendInterval) 他のデータが送信されていない場合に「システム」接続がハートビートを STOMP ブローカーに送信する間隔をミリ秒単位で設定します。void
setSystemLogin
(StringSE systemLogin) アプリケーション内から STOMP ブローカーにメッセージを送信するために使用される共有「システム」接続のログインを設定します。void
setSystemPasscode
(StringSE systemPasscode) アプリケーション内から STOMP ブローカーにメッセージを送信するために使用される共有「システム」接続のパスコードを設定します。void
setSystemSubscriptions
(MapSE<StringSE, MessageHandler> subscriptions) 受信したメッセージを処理するために、MessageHandler とともに共有「システム」接続でサブスクライブする宛先をもう 1 つ構成します。void
setTaskScheduler
(TaskScheduler taskScheduler) 現在のハートビート期間でクライアントからブローカーへのメッセージ数をリセットするために使用するようにTaskScheduler
を構成します。void
setTcpClient
(TcpOperations<byte[]> tcpClient) STOMP ブローカーへの TCP 接続を管理するための TCP クライアントを構成します。void
setVirtualHost
(StringSE virtualHost) STOMP CONNECT フレームで使用する「ホスト」ヘッダーの値を設定します。protected void
protected void
toString()
クラス org.springframework.messaging.simp.broker.AbstractBrokerMessageHandler から継承されたメソッド
checkDestinationPrefix, getApplicationEventPublisher, getBrokerChannel, getClientInboundChannel, getClientOutboundChannel, getClientOutboundChannelForSession, getDestinationPrefixes, getPhase, handleMessage, isAutoStartup, isBrokerAvailable, isPreservePublishOrder, isRunning, publishBrokerAvailableEvent, publishBrokerUnavailableEvent, setApplicationEventPublisher, setAutoStartup, setPhase, setPreservePublishOrder, setUserDestinationPredicate, start, stop, stop
フィールドの詳細
SYSTEM_SESSION_ID
システムセッション ID。- 関連事項:
コンストラクターの詳細
StompBrokerRelayMessageHandler
public StompBrokerRelayMessageHandler(SubscribableChannel inboundChannel, MessageChannel outboundChannel, SubscribableChannel brokerChannel, CollectionSE<StringSE> destinationPrefixes) 指定されたメッセージチャネルと宛先プレフィックスを使用して StompBrokerRelayMessageHandler インスタンスを作成します。- パラメーター:
inboundChannel
- クライアントからメッセージを受信するためのチャネル (たとえば WebSocket クライアント)outboundChannel
- クライアントにメッセージを送信するためのチャネル (たとえば WebSocket クライアント)brokerChannel
- アプリケーションがブローカーにメッセージを送信するためのチャネルdestinationPrefixes
- ブローカーがサポートする宛先プレフィックス。指定されたプレフィックスに一致しない宛先は無視されます。
メソッドの詳細
setRelayHost
STOMP メッセージブローカーホストを設定します。getRelayHost
STOMP メッセージブローカーホストを返します。setRelayPort
public void setRelayPort(int relayPort) STOMP メッセージブローカーポートを設定します。getRelayPort
public int getRelayPort()STOMP メッセージブローカーポートを返します。setClientLogin
接続されたクライアントに代わって STOMP ブローカーへの接続を作成するときに使用するログインを設定します。デフォルトでは「ゲスト」に設定されています。
getClientLogin
接続されたクライアントに代わって STOMP ブローカーへの接続に使用するように構成されたログインを返します。- 関連事項:
setClientPasscode
接続されたクライアントに代わって STOMP ブローカーへの接続を作成するために使用するクライアントパスコードを設定します。デフォルトでは「ゲスト」に設定されています。
getClientPasscode
接続されたクライアントに代わって STOMP ブローカーへの接続に使用する構成済みのパスコードを返します。- 関連事項:
setSystemLogin
アプリケーション内から STOMP ブローカーにメッセージを送信するために使用される共有「システム」接続のログインを設定します。つまり、特定のクライアントセッションに関連付けられていないメッセージ(REST/HTTP リクエスト処理メソッドなど)です。デフォルトでは「ゲスト」に設定されています。
getSystemLogin
共有「システム」接続に使用されるログインを STOMP ブローカーに返します。setSystemPasscode
アプリケーション内から STOMP ブローカーにメッセージを送信するために使用される共有「システム」接続のパスコードを設定します。つまり、特定のクライアントセッションに関連付けられていないメッセージ(REST/HTTP リクエスト処理メソッドなど)です。デフォルトでは「ゲスト」に設定されています。
getSystemPasscode
STOMP ブローカーへの共有「システム」接続に使用されるパスコードを返します。setSystemHeartbeatSendInterval
public void setSystemHeartbeatSendInterval(long systemHeartbeatSendInterval) 他のデータが送信されていない場合に「システム」接続がハートビートを STOMP ブローカーに送信する間隔をミリ秒単位で設定します。値をゼロにすると、ハートビートがブローカーに送信されなくなります。デフォルト値は 10000 です。
「システム」接続の詳細については、クラスレベルのドキュメントを参照してください。
getSystemHeartbeatSendInterval
public long getSystemHeartbeatSendInterval()「システム」接続がハートビートを STOMP ブローカーに送信する間隔をミリ秒単位で返します。setSystemHeartbeatReceiveInterval
public void setSystemHeartbeatReceiveInterval(long heartbeatReceiveInterval) 他のデータがない場合に「システム」接続が STOMP ブローカーからハートビートを受信することを期待する最大間隔をミリ秒単位で設定します。ゼロの値は、ブローカーからハートビートを受信しないことを期待するように接続を構成します。デフォルト値は 10000 です。
「システム」接続の詳細については、クラスレベルのドキュメントを参照してください。
getSystemHeartbeatReceiveInterval
public long getSystemHeartbeatReceiveInterval()「システム」接続が STOMP ブローカーからハートビートを受信することを期待している間隔をミリ秒単位で返します。setSystemSubscriptions
受信したメッセージを処理するために、MessageHandler とともに共有「システム」接続でサブスクライブする宛先をもう 1 つ構成します。これは、サーバーが相互にメッセージを転送するマルチアプリケーションサーバーシナリオ(未解決のユーザー宛先など)での内部使用のためのものです。
- パラメーター:
subscriptions
- サブスクライブする宛先。
getSystemSubscriptions
「システム」接続のサブスクリプションで構成されたマップを返します。setVirtualHost
STOMP CONNECT フレームで使用する「ホスト」ヘッダーの値を設定します。このプロパティを設定すると、STOMP ブローカーに送信されるすべての STOMP フレームに「ホスト」ヘッダーが追加されます。これは、たとえば、TCP 接続が確立される実際のホストがクラウドベースの STOMP サービスを提供するホストと異なるクラウド環境で役立つ場合があります。デフォルトでは、このプロパティは設定されていません。
getVirtualHost
構成された仮想ホストの値を返します。setTcpClient
STOMP ブローカーへの TCP 接続を管理するための TCP クライアントを構成します。デフォルトでは、
ReactorNettyTcpClient
またはReactorNetty2TcpClient
が使用されます。getTcpClient
構成された TCP クライアントを取得します(構成されていない限りnull
を呼び出さず、このメソッドはハンドラーが開始される前に呼び出されるため、デフォルトの実装が初期化されます)。setHeaderInitializer
クライアントの送信メッセージチャネルに送信される、StompBrokerRelayMessageHandler
を介して作成されたすべてのメッセージのヘッダーに適用するMessageHeaderInitializer
を構成します。デフォルトでは、このプロパティは設定されていません。
getHeaderInitializer
設定済みのヘッダー初期化子を返します。getStatsInfo
内部状態とカウンタを説明する文字列を返します。事実上、getStats()
上のtoString()
。getStats
内部状態とカウンターを含む構造化オブジェクトを返します。- 導入:
- 5.2
getConnectionCount
public int getConnectionCount()ブローカーへの TCP 接続の現在の数を返します。setTaskScheduler
現在のハートビート期間でクライアントからブローカーへのメッセージ数をリセットするために使用するようにTaskScheduler
を構成します。詳細については、StompBrokerRelayRegistration.setTaskScheduler(TaskScheduler)
を参照してください。- パラメーター:
taskScheduler
- 使用するスケジューラー- 導入:
- 5.3
getTaskScheduler
startInternal
protected void startInternal()- オーバーライド:
- クラス
AbstractBrokerMessageHandler
のstartInternal
stopInternal
protected void stopInternal()- オーバーライド:
- クラス
AbstractBrokerMessageHandler
のstopInternal
handleMessageInternal
- 次で指定:
- クラス
AbstractBrokerMessageHandler
のhandleMessageInternal
toString