public class StompBrokerRelayMessageHandler extends AbstractBrokerMessageHandler
MessageHandler
。 新しい CONNECT
メッセージごとに、ブローカーへの独立した TCP 接続が開かれ、CONNECT メッセージを発信したクライアントからのすべてのメッセージに対して排他的に使用されます。同じクライアントからのメッセージは、セッション ID メッセージヘッダーで識別されます。逆に、STOMP ブローカーが TCP 接続でメッセージを返信すると、それらのメッセージはクライアントのセッション ID で強化され、コンストラクターに提供された MessageChannel
を介してダウンストリームに返信されます。
このクラスは、(クライアントからではなく)サーバーアプリケーションから発信されたメッセージの送信に使用されるメッセージブローカーへのデフォルトの「システム」TCP 接続も自動的に開きます。このようなメッセージはどのクライアントにも関連付けられていないため、セッション ID ヘッダーはありません。「システム」接続は効果的に共有され、メッセージの受信には使用できません。「システム」接続を構成するために、いくつかのプロパティが提供されています。
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | SYSTEM_SESSION_ID システムセッション ID。 |
logger
DEFAULT_PHASE
コンストラクターと説明 |
---|
StompBrokerRelayMessageHandler(SubscribableChannel inboundChannel, MessageChannel outboundChannel, SubscribableChannel brokerChannel, CollectionSE<StringSE> destinationPrefixes) 指定されたメッセージチャネルと宛先プレフィックスを使用して StompBrokerRelayMessageHandler インスタンスを作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
StringSE | getClientLogin() 接続されたクライアントに代わって STOMP ブローカーへの接続に使用するように構成されたログインを返します。 |
StringSE | getClientPasscode() 接続されたクライアントに代わって STOMP ブローカーへの接続に使用する構成済みのパスコードを返します。 |
int | getConnectionCount() ブローカーへの TCP 接続の現在の数を返します。 |
MessageHeaderInitializer | getHeaderInitializer() 設定済みのヘッダー初期化子を返します。 |
StringSE | getRelayHost() STOMP メッセージブローカーホストを返します。 |
int | getRelayPort() STOMP メッセージブローカーポートを返します。 |
StringSE | getStatsInfo() 内部状態とカウンタを記述する文字列を返します。 |
long | getSystemHeartbeatReceiveInterval() 「システム」接続が STOMP ブローカーからハートビートを受信することを期待している間隔をミリ秒単位で返します。 |
long | getSystemHeartbeatSendInterval() 「システム」接続がハートビートを STOMP ブローカーに送信する間隔をミリ秒単位で返します。 |
StringSE | getSystemLogin() 共有「システム」接続に使用されるログインを STOMP ブローカーに返します。 |
StringSE | getSystemPasscode() STOMP ブローカーへの共有「システム」接続に使用されるパスコードを返します。 |
MapSE<StringSE, MessageHandler> | getSystemSubscriptions() 「システム」接続のサブスクリプションで構成されたマップを返します。 |
TcpOperations<byte[]> | getTcpClient() 構成された TCP クライアントを取得します(構成されていない限り null を呼び出さず、このメソッドはハンドラーが開始される前に呼び出されるため、デフォルトの実装が初期化されます)。 |
StringSE | getVirtualHost() 構成された仮想ホストの値を返します。 |
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 | setTcpClient(TcpOperations<byte[]> tcpClient) STOMP ブローカーへの TCP 接続を管理するための TCP クライアントを構成します。 |
void | setVirtualHost(StringSE virtualHost) STOMP CONNECT フレームで使用する「ホスト」ヘッダーの値を設定します。 |
protected void | startInternal() |
protected void | stopInternal() |
StringSE | toString() |
checkDestinationPrefix, getApplicationEventPublisher, getBrokerChannel, getClientInboundChannel, getClientOutboundChannel, getClientOutboundChannelForSession, getDestinationPrefixes, handleMessage, isAutoStartup, isBrokerAvailable, isPreservePublishOrder, isRunning, publishBrokerAvailableEvent, publishBrokerUnavailableEvent, setApplicationEventPublisher, setAutoStartup, setPreservePublishOrder, start, stop, stop
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
getPhase
public StompBrokerRelayMessageHandler(SubscribableChannel inboundChannel, MessageChannel outboundChannel, SubscribableChannel brokerChannel, CollectionSE<StringSE> destinationPrefixes)
inboundChannel
- クライアントからメッセージを受信するためのチャネル (たとえば WebSocket クライアント)outboundChannel
- クライアントにメッセージを送信するためのチャネル (たとえば WebSocket クライアント)brokerChannel
- アプリケーションがブローカーにメッセージを送信するためのチャネル destinationPrefixes
- ブローカーがサポートする宛先プレフィックス。指定されたプレフィックスに一致しない宛先は無視されます。public void setRelayHost(StringSE relayHost)
public StringSE getRelayHost()
public void setRelayPort(int relayPort)
public int getRelayPort()
public void setClientLogin(StringSE clientLogin)
デフォルトでは「ゲスト」に設定されています。
public StringSE getClientLogin()
getSystemLogin()
public void setClientPasscode(StringSE clientPasscode)
デフォルトでは「ゲスト」に設定されています。
public StringSE getClientPasscode()
getSystemPasscode()
public void setSystemLogin(StringSE systemLogin)
デフォルトでは「ゲスト」に設定されています。
public StringSE getSystemLogin()
public void setSystemPasscode(StringSE systemPasscode)
デフォルトでは「ゲスト」に設定されています。
public StringSE getSystemPasscode()
public void setSystemHeartbeatSendInterval(long systemHeartbeatSendInterval)
デフォルト値は 10000 です。
「システム」接続の詳細については、クラスレベルのドキュメントを参照してください。
public long getSystemHeartbeatSendInterval()
public void setSystemHeartbeatReceiveInterval(long heartbeatReceiveInterval)
デフォルト値は 10000 です。
「システム」接続の詳細については、クラスレベルのドキュメントを参照してください。
public long getSystemHeartbeatReceiveInterval()
public void setSystemSubscriptions(@Nullable MapSE<StringSE,MessageHandler> subscriptions)
これは、サーバーが相互にメッセージを転送するマルチアプリケーションサーバーシナリオ(未解決のユーザー宛先など)での内部使用のためのものです。
subscriptions
- サブスクライブする宛先。public MapSE<StringSE,MessageHandler> getSystemSubscriptions()
public void setVirtualHost(@Nullable StringSE virtualHost)
デフォルトでは、このプロパティは設定されていません。
public void setTcpClient(@Nullable TcpOperations<byte[]> tcpClient)
デフォルトでは、ReactorNettyTcpClient
が使用されます。
@Nullable public TcpOperations<byte[]> getTcpClient()
null
を呼び出さず、このメソッドはハンドラーが開始される前に呼び出されるため、デフォルトの実装が初期化されます)。public void setHeaderInitializer(@Nullable MessageHeaderInitializer headerInitializer)
StompBrokerRelayMessageHandler
を介して作成されたすべてのメッセージのヘッダーに適用する MessageHeaderInitializer
を構成します。デフォルトでは、このプロパティは設定されていません。
@Nullable public MessageHeaderInitializer getHeaderInitializer()
public StringSE getStatsInfo()
public int getConnectionCount()
protected void startInternal()
AbstractBrokerMessageHandler
の startInternal
protected void stopInternal()
AbstractBrokerMessageHandler
の stopInternal
protected void handleMessageInternal(Message<?> message)
AbstractBrokerMessageHandler
の handleMessageInternal
public StringSE toString()
ObjectSE
の toStringSE