クラス 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 メッセージブローカーホストを返します。intSTOMP メッセージブローカーポートを返します。getStats()内部状態とカウンターを含む構造化オブジェクトを返します。内部状態とカウンタを記述する文字列を返します。long「システム」接続が STOMP ブローカーからハートビートを受信することを期待している間隔をミリ秒単位で返します。long「システム」接続がハートビートを STOMP ブローカーに送信する間隔をミリ秒単位で返します。共有「システム」接続に使用されるログインを STOMP ブローカーに返します。STOMP ブローカーへの共有「システム」接続に使用されるパスコードを返します。「システム」接続のサブスクリプションで構成されたマップを返します。TcpOperations<byte[]>構成された TCP クライアントを取得します(構成されていない限りnullを呼び出さず、このメソッドはハンドラーが開始される前に呼び出されるため、デフォルトの実装が初期化されます)。構成された仮想ホストの値を返します。protected voidhandleMessageInternal(Message<?> message) voidsetClientLogin(StringSE clientLogin) 接続されたクライアントに代わって STOMP ブローカーへの接続を作成するときに使用するログインを設定します。voidsetClientPasscode(StringSE clientPasscode) 接続されたクライアントに代わって STOMP ブローカーへの接続を作成するために使用するクライアントパスコードを設定します。voidsetHeaderInitializer(MessageHeaderInitializer headerInitializer) クライアントの送信メッセージチャネルに送信される、StompBrokerRelayMessageHandlerを介して作成されたすべてのメッセージのヘッダーに適用するMessageHeaderInitializerを構成します。voidsetRelayHost(StringSE relayHost) STOMP メッセージブローカーホストを設定します。voidsetRelayPort(int relayPort) STOMP メッセージブローカーポートを設定します。voidsetSystemHeartbeatReceiveInterval(long heartbeatReceiveInterval) 他のデータがない場合に「システム」接続が STOMP ブローカーからハートビートを受信することを期待する最大間隔をミリ秒単位で設定します。voidsetSystemHeartbeatSendInterval(long systemHeartbeatSendInterval) 他のデータが送信されていない場合に「システム」接続がハートビートを STOMP ブローカーに送信する間隔をミリ秒単位で設定します。voidsetSystemLogin(StringSE systemLogin) アプリケーション内から STOMP ブローカーにメッセージを送信するために使用される共有「システム」接続のログインを設定します。voidsetSystemPasscode(StringSE systemPasscode) アプリケーション内から STOMP ブローカーにメッセージを送信するために使用される共有「システム」接続のパスコードを設定します。voidsetSystemSubscriptions(MapSE<StringSE, MessageHandler> subscriptions) 受信したメッセージを処理するために、MessageHandler とともに共有「システム」接続でサブスクライブする宛先をもう 1 つ構成します。voidsetTaskScheduler(TaskScheduler taskScheduler) 現在のハートビート期間でクライアントからブローカーへのメッセージ数をリセットするために使用するようにTaskSchedulerを構成します。voidsetTcpClient(TcpOperations<byte[]> tcpClient) STOMP ブローカーへの TCP 接続を管理するための TCP クライアントを構成します。voidsetVirtualHost(StringSE virtualHost) STOMP CONNECT フレームで使用する「ホスト」ヘッダーの値を設定します。protected voidprotected voidtoString()クラス 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