クラス UserDestinationMessageHandler

java.lang.ObjectSE
org.springframework.messaging.simp.user.UserDestinationMessageHandler
実装されたすべてのインターフェース:
LifecyclePhasedSmartLifecycleMessageHandler

public class UserDestinationMessageHandler extends ObjectSE implements MessageHandler, SmartLifecycle
「ユーザー」宛先をサポートする MessageHandler

「ユーザー」宛先を持つメッセージをリッスンし、その宛先をアクティブなユーザーセッションに固有のターゲット宛先に変換し、配信のためにブローカーチャネルに送信します。

導入:
4.0
作成者:
Rossen Stoyanchev
  • コンストラクターの詳細

    • UserDestinationMessageHandler

      public UserDestinationMessageHandler(SubscribableChannel clientInboundChannel, SubscribableChannel brokerChannel, UserDestinationResolver destinationResolver)
      サブスクライブする特定のクライアントおよびブローカーチャネルを使用してインスタンスを作成し、解決されたメッセージをブローカーチャネルに送信します。
      パラメーター:
      clientInboundChannel - クライアントから受信したメッセージ。
      brokerChannel - ブローカーに送信されたメッセージ。
      destinationResolver - 「ユーザー」宛先のリゾルバー。
  • メソッドの詳細

    • getUserDestinationResolver

      public UserDestinationResolver getUserDestinationResolver()
      設定された UserDestinationResolver を返します。
    • setBroadcastDestination

      public void setBroadcastDestination(@Nullable StringSE destination)
      ユーザーが接続されていないため未解決のままになるメッセージをブロードキャストする宛先を設定します。マルチアプリケーションサーバーのシナリオでは、これにより他のアプリケーションサーバーが試す機会が与えられます。

      デフォルトでは、これは設定されていません。

      パラメーター:
      destination - ターゲット宛先。
    • getBroadcastDestination

      @Nullable public StringSE getBroadcastDestination()
      未解決のメッセージの構成済み宛先を返します。
    • getBrokerMessagingTemplate

      public MessageSendingOperations<StringSE> getBrokerMessagingTemplate()
      解決されたメッセージをブローカーチャネルに送信するために使用されるメッセージングテンプレートを返します。
    • setHeaderInitializer

      public void setHeaderInitializer(@Nullable MessageHeaderInitializer headerInitializer)
      カスタム MessageHeaderInitializer を構成して、解決されたターゲットメッセージのヘッダーを初期化します。

      デフォルトでは、これは設定されていません。

    • getHeaderInitializer

      @Nullable public MessageHeaderInitializer getHeaderInitializer()
      設定済みのヘッダー初期化子を返します。
    • setPhase

      public void setPhase(int phase)
      このハンドラーが実行されるフェーズを設定します。

      デフォルトでは、これは SmartLifecycle.DEFAULT_PHASE です。

      導入:
      6.1.4
    • getPhase

      public int getPhase()
      インターフェースからコピーされた説明: SmartLifecycle
      このライフサイクルオブジェクトが実行されるはずのフェーズを返します。

      デフォルトの実装は、通常の Lifecycle 実装の前に stop() コールバックを実行できるようにするために SmartLifecycle.DEFAULT_PHASE を返します。

      次で指定:
      インターフェース PhasedgetPhase 
      次で指定:
      インターフェース SmartLifecyclegetPhase 
      関連事項:
    • start

      public final void start()
      インターフェースからコピーされた説明: Lifecycle
      このコンポーネントを起動します。

      コンポーネントがすでに実行されている場合は、例外をスローしないでください。

      コンテナーの場合、これは適用されるすべてのコンポーネントに開始信号を伝播します。

      次で指定:
      インターフェース Lifecyclestart 
      関連事項:
    • stop

      public final void stop()
      インターフェースからコピーされた説明: Lifecycle
      このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。非同期停止動作が必要な場合は、SmartLifecycle とその stop(Runnable) バリアントの実装を検討してください。

      この停止通知は破棄前に送信されるとは限らないことに注意してください。通常のシャットダウンでは、一般的な破棄コールバックが伝播される前に、Lifecycle Bean は最初に停止通知を受信します。ただし、コンテキストの存続期間中のホットリフレッシュまたは中断されたリフレッシュ試行では、特定の Bean の destroy メソッドが、停止信号を事前に考慮することなく呼び出されます。

      コンポーネントが実行されていない(まだ開始されていない)場合は、例外をスローしないでください。

      コンテナーの場合、これは停止信号を適用するすべてのコンポーネントに伝播します。

      次で指定:
      インターフェース Lifecyclestop 
      関連事項:
    • stop

      public final void stop(RunnableSE callback)
      インターフェースからコピーされた説明: SmartLifecycle
      Lifecycle コンポーネントが現在実行中の場合、停止する必要があることを示します。

      提供されたコールバックは、LifecycleProcessor によって使用され、共通のシャットダウン順序値を持つすべてのコンポーネントの順序付けられた、潜在的に同時のシャットダウンをサポートします。コールバック は、SmartLifecycle コンポーネントが実際に停止した後に実行する必要があります。

      LifecycleProcessor は、stop メソッドのこのバリアントのみを呼び出します。つまり、SmartLifecycle 実装では、このメソッドの実装内に明示的に委譲されない限り、Lifecycle.stop() は呼び出されません。

      デフォルトの実装は Lifecycle.stop() に委譲し、呼び出しスレッドで指定されたコールバックをすぐにトリガーします。2 つの間に同期がないことに注意してください。カスタム実装では、少なくとも共通のライフサイクルモニター(存在する場合)内に同じ手順を入れたい場合があります。

      次で指定:
      インターフェース SmartLifecyclestop 
      関連事項:
    • isRunning

      public final boolean isRunning()
      インターフェースからコピーされた説明: Lifecycle
      このコンポーネントが現在実行されているかどうかを確認します。

      コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、true を返します。

      次で指定:
      インターフェース LifecycleisRunning 
      戻り値:
      コンポーネントが現在実行中かどうか
    • handleMessage

      public void handleMessage(Message<?> sourceMessage) throws MessagingException
      インターフェースからコピーされた説明: MessageHandler
      指定されたメッセージを処理します。
      次で指定:
      インターフェース MessageHandlerhandleMessage 
      パラメーター:
      sourceMessage - 処理するメッセージ
      例外:
      MessagingException - ハンドラーがメッセージの処理に失敗した場合
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString