クラス UserDestinationMessageHandler
- 実装されているすべてのインターフェース:
Lifecycle、Phased、SmartLifecycle、MessageHandler
MessageHandler。「ユーザー」宛先を持つメッセージをリッスンし、その宛先をアクティブなユーザーセッションに固有のターゲット宛先に変換し、配信のためにブローカーチャネルに送信します。
- 導入:
- 4.0
- 作成者:
- Rossen Stoyanchev
フィールドのサマリー
インターフェース org.springframework.context.SmartLifecycle から継承されたフィールド
DEFAULT_PHASEコンストラクターの概要
コンストラクターコンストラクター説明UserDestinationMessageHandler(SubscribableChannel clientInboundChannel, SubscribableChannel brokerChannel, UserDestinationResolver destinationResolver) サブスクライブする特定のクライアントおよびブローカーチャネルを使用してインスタンスを作成し、解決されたメッセージをブローカーチャネルに送信します。メソッドのサマリー
修飾子と型メソッド説明未解決のメッセージの構成済み宛先を返します。解決されたメッセージをブローカーチャネルに送信するために使用されるメッセージングテンプレートを返します。設定済みのヘッダー初期化子を返します。intgetPhase()このライフサイクルオブジェクトが実行されるはずのフェーズを返します。設定されたUserDestinationResolverを返します。voidhandleMessage(Message<?> sourceMessage) 指定されたメッセージを処理します。final booleanこのコンポーネントが現在実行されているかどうかを確認します。voidsetBroadcastDestination(StringSE destination) ユーザーが接続されていないため未解決のままになるメッセージをブロードキャストする宛先を設定します。voidsetHeaderInitializer(MessageHeaderInitializer headerInitializer) カスタムMessageHeaderInitializerを構成して、解決されたターゲットメッセージのヘッダーを初期化します。voidsetPhase(int phase) このハンドラーが実行されるフェーズを設定します。final voidstart()このコンポーネントを起動します。final voidstop()このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。final voidstop(RunnableSE callback) Lifecycle コンポーネントが現在実行中の場合、停止する必要があることを示します。toString()クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSEインターフェース org.springframework.context.SmartLifecycle から継承されたメソッド
isAutoStartup
コンストラクターの詳細
UserDestinationMessageHandler
public UserDestinationMessageHandler(SubscribableChannel clientInboundChannel, SubscribableChannel brokerChannel, UserDestinationResolver destinationResolver) サブスクライブする特定のクライアントおよびブローカーチャネルを使用してインスタンスを作成し、解決されたメッセージをブローカーチャネルに送信します。- パラメーター:
clientInboundChannel- クライアントから受信したメッセージ。brokerChannel- ブローカーに送信されたメッセージ。destinationResolver- 「ユーザー」宛先のリゾルバー。
メソッドの詳細
getUserDestinationResolver
設定されたUserDestinationResolverを返します。setBroadcastDestination
ユーザーが接続されていないため未解決のままになるメッセージをブロードキャストする宛先を設定します。マルチアプリケーションサーバーのシナリオでは、これにより他のアプリケーションサーバーが試す機会が与えられます。デフォルトでは、これは設定されていません。
- パラメーター:
destination- ターゲット宛先。
getBroadcastDestination
未解決のメッセージの構成済み宛先を返します。getBrokerMessagingTemplate
解決されたメッセージをブローカーチャネルに送信するために使用されるメッセージングテンプレートを返します。setHeaderInitializer
カスタムMessageHeaderInitializerを構成して、解決されたターゲットメッセージのヘッダーを初期化します。デフォルトでは、これは設定されていません。
getHeaderInitializer
設定済みのヘッダー初期化子を返します。setPhase
public void setPhase(int phase) このハンドラーが実行されるフェーズを設定します。デフォルトでは
SmartLifecycle.DEFAULT_PHASEですが、@EnableWebSocketMessageBroker構成では 0 に設定されます。- 導入:
- 6.1.4
getPhase
public int getPhase()インターフェースからコピーされた説明:SmartLifecycleこのライフサイクルオブジェクトが実行されるはずのフェーズを返します。デフォルトの実装は、通常の
Lifecycle実装の前にstop()コールバックを実行できるようにするためにSmartLifecycle.DEFAULT_PHASEを返します。- 次で指定:
- インターフェース
PhasedのgetPhase - 次で指定:
- インターフェース
SmartLifecycleのgetPhase - 関連事項:
start
public final void start()インターフェースからコピーされた説明:Lifecycleこのコンポーネントを起動します。コンポーネントがすでに実行されている場合は、例外をスローしないでください。
コンテナーの場合、これにより、自動起動しないコンポーネントも含め、適用されるすべてのコンポーネントにハードスタートシグナルが伝播されます。
stop
public final void stop()インターフェースからコピーされた説明:Lifecycleこのメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。非同期停止動作が必要な場合は、SmartLifecycleとそのstop(Runnable)バリアントの実装を検討してください。この停止通知は破棄前に送信されるとは限らないことに注意してください。通常のシャットダウンでは、一般的な破棄コールバックが伝播される前に、
LifecycleBean は最初に停止通知を受信します。ただし、コンテキストの存続期間中のホットリフレッシュまたは中断されたリフレッシュ試行では、特定の Bean の destroy メソッドが、停止シグナルを事前に考慮することなく呼び出されます。コンポーネントが実行されていない(まだ開始されていない)場合は、例外をスローしないでください。
コンテナーの場合、これは停止シグナルを適用するすべてのコンポーネントに伝播します。
stop
インターフェースからコピーされた説明:SmartLifecycleLifecycle コンポーネントが現在実行中の場合、停止する必要があることを示します。提供されたコールバックは、
LifecycleProcessorによって使用され、共通のシャットダウン順序値を持つすべてのコンポーネントの順序付けられた、潜在的に同時のシャットダウンをサポートします。コールバック は、SmartLifecycleコンポーネントが実際に停止した後に実行する必要があります。LifecycleProcessorは、stopメソッドのこのバリアントのみを呼び出します。つまり、SmartLifecycle実装では、このメソッドの実装内に明示的に委譲されない限り、Lifecycle.stop()は呼び出されません。デフォルトの実装は
Lifecycle.stop()に委譲し、呼び出しスレッドで指定されたコールバックをすぐにトリガーします。2 つの間に同期がないことに注意してください。カスタム実装では、少なくとも共通のライフサイクルモニター(存在する場合)内に同じ手順を入れたい場合があります。- 次で指定:
- インターフェース
SmartLifecycleのstop - 関連事項:
isRunning
public final boolean isRunning()インターフェースからコピーされた説明:Lifecycleこのコンポーネントが現在実行されているかどうかを確認します。コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、
trueを返します。handleMessage
インターフェースからコピーされた説明:MessageHandler指定されたメッセージを処理します。- 次で指定:
- インターフェース
MessageHandlerのhandleMessage - パラメーター:
sourceMessage- 処理するメッセージ- 例外:
MessagingException- ハンドラーがメッセージの処理に失敗した場合
toString