クラス DefaultUserDestinationResolver

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

public class DefaultUserDestinationResolver extends ObjectSE implements UserDestinationResolver
SimpUserRegistry に依存してユーザーのアクティブセッションを見つける UserDestinationResolver のデフォルト実装。

ユーザーがサブスクライブしようとしたとき。"/user/queue/position-updates" には、"/user" プレフィックスが削除され、セッション ID に基づいて一意のサフィックスが追加されます。"/queue/position-updates-useri9oqdfzo" は、異なるユーザーが衝突することなく同じ論理宛先にサブスクライブできるようにします。

ユーザーに送信する場合、例: "/user/{username}/queue/position-updates", "/user/{username}" プレフィックスが削除され、アクティブなセッション ID に基づくサフィックスが追加されます。"/queue/position-updates-useri9oqdfzo"。

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

    • DefaultUserDestinationResolver

      public DefaultUserDestinationResolver(SimpUserRegistry userRegistry)
      提供されたレジストリを介してユーザーセッション ID 情報にアクセスするインスタンスを作成します。
      パラメーター:
      userRegistry - レジストリ、null
  • メソッドの詳細

    • getSimpUserRegistry

      public SimpUserRegistry getSimpUserRegistry()
      設定された SimpUserRegistry を返します。
    • setUserDestinationPrefix

      public void setUserDestinationPrefix(StringSE prefix)
      ユーザーの宛先を識別するために使用される接頭辞。指定された接頭辞で始まらない宛先は解決されません。

      デフォルトのプレフィックスは "/user/" です。

      パラメーター:
      prefix - 使用する接頭辞
    • getDestinationPrefix

      public StringSE getDestinationPrefix()
      ユーザー宛先に構成されたプレフィックスを返します。
    • setRemoveLeadingSlash

      public void setRemoveLeadingSlash(boolean remove)
      このプロパティを使用して、変換されたユーザー宛先からの先行スラッシュを削除する必要があるかどうかを示します。これは、メッセージブローカーが構成されている宛先プレフィックスに依存します。

      デフォルトでは、これは false に設定されています。つまり、「ターゲットの宛先を変更しないでください」です。ただし、構成された宛先の先頭にスラッシュがない場合、AbstractMessageBrokerConfiguration は true に変更することがあります。

      パラメーター:
      remove - 先頭のスラッシュを削除するかどうか
      導入:
      4.3.14
    • isRemoveLeadingSlash

      public boolean isRemoveLeadingSlash()
      ターゲット宛先から先頭のスラッシュを削除するかどうか。
      導入:
      4.3.14
    • resolveDestination

      @Nullable public UserDestinationResult resolveDestination(Message<?> message)
      インターフェースからコピーされた説明: UserDestinationResolver
      ユーザー宛先を指定したメッセージを、実際の宛先を含む 1 つ以上のメッセージ(アクティブなユーザーセッションごとに 1 つ)に解決します。
      次で指定:
      インターフェース UserDestinationResolverresolveDestination 
      パラメーター:
      message - 解決しようとするメッセージ
      戻り値:
      0 以上のターゲットメッセージ(アクティブなセッションごとに 1 つ)、またはソースメッセージにユーザー宛先が含まれていない場合は null
    • checkDestination

      protected boolean checkDestination(StringSE destination, StringSE requiredPrefix)
    • getTargetDestination

      @Nullable protected StringSE getTargetDestination(StringSE sourceDestination, StringSE actualDestination, StringSE sessionId, @Nullable StringSE user)
      このメソッドは、特定のアクティブユーザーセッションのソース「ユーザー」宛先を実際のターゲット宛先に変換する方法を決定します。
      パラメーター:
      sourceDestination - 入力メッセージからのソース宛先。
      actualDestination - ユーザー接頭辞のない宛先のサブセット。
      sessionId - null ではなく、アクティブなユーザーセッションの ID。
      user - 認証されていない場合など、ターゲットユーザー、おそらく null
      戻り値:
      ターゲット宛先、ない場合は null 
    • toString

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