クラス SimpleBrokerMessageHandler

java.lang.ObjectSE
org.springframework.messaging.simp.broker.AbstractBrokerMessageHandler
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler
実装されているすべてのインターフェース:
Aware, ApplicationEventPublisherAware, Lifecycle, Phased, SmartLifecycle, MessageHandler

public class SimpleBrokerMessageHandler extends AbstractBrokerMessageHandler
SimpMessageType で定義されたメッセージ型を認識し、SubscriptionRegistry を使用してサブスクリプションを追跡し、サブスクライバーにメッセージを送信する「単純な」メッセージブローカー。
導入:
4.0
作成者:
Rossen Stoyanchev, Juergen Hoeller, Sam Brannen
  • コンストラクターの詳細

    • SimpleBrokerMessageHandler

      public SimpleBrokerMessageHandler(SubscribableChannel clientInboundChannel, MessageChannel clientOutboundChannel, SubscribableChannel brokerChannel, CollectionSE<StringSE> destinationPrefixes)
      指定されたメッセージチャネルと宛先プレフィックスを使用して SimpleBrokerMessageHandler インスタンスを作成します。
      パラメーター:
      clientInboundChannel - クライアントからメッセージを受信するためのチャネル (たとえば、WebSocket クライアント)
      clientOutboundChannel - クライアントにメッセージを送信するためのチャネル (たとえば、WebSocket クライアント)
      brokerChannel - アプリケーションがブローカーにメッセージを送信するためのチャネル
      destinationPrefixes - メッセージを除外するために使用するプレフィックス
  • メソッドの詳細

    • setSubscriptionRegistry

      public void setSubscriptionRegistry(SubscriptionRegistry subscriptionRegistry)
      サブスクリプションの保存に使用するカスタム SubscriptionRegistry を構成します。

      : カスタムレジストリが DefaultSubscriptionRegistry のインスタンスではない場合、構成された PathMatcherキャッシュ制限、およびセレクターヘッダー名は使用されないため、カスタムレジストリで直接構成する必要があります。

    • getSubscriptionRegistry

      public SubscriptionRegistry getSubscriptionRegistry()
    • setPathMatcher

      public void setPathMatcher(@Nullable PathMatcher pathMatcher)
      構成すると、指定された PathMatcher が基になる SubscriptionRegistry に渡され、宛先をサブスクリプションに一致させるために使用されます。

      デフォルトは標準 AntPathMatcher です。

      基礎となる SubscriptionRegistry が DefaultSubscriptionRegistry のインスタンスではない場合、このプロパティを設定しても効果はありません。

      導入:
      4.1
      関連事項:
    • setCacheLimit

      public void setCacheLimit(@Nullable IntegerSE cacheLimit)
      設定されると、指定されたキャッシュ制限が基礎となる SubscriptionRegistry に渡され、そこでデフォルトが上書きされます。

      標準 DefaultSubscriptionRegistry では、デフォルトのキャッシュ制限は 1024 です。

      基礎となる SubscriptionRegistry が DefaultSubscriptionRegistry のインスタンスではない場合、このプロパティを設定しても効果はありません。

      導入:
      4.3.2
      関連事項:
    • setSelectorHeaderName

      public void setSelectorHeaderName(@Nullable StringSE selectorHeaderName)
      サブスクリプションに一致するメッセージをフィルター処理するために、サブスクリプションメッセージに含めることができるヘッダーの名前を構成します。

      ヘッダー値は、サブスクリプションに一致するメッセージのヘッダーに適用される Spring Expression Language (SpEL) ブール式であることが想定されます。

      例:

      headers.foo == 'bar'
      

      デフォルトでは、セレクターヘッダー名は null に設定されており、この機能は無効になっています。これを "selector" または別の名前に設定して、セレクターヘッダーのサポートを有効にすることができます。

      基礎となる SubscriptionRegistry が DefaultSubscriptionRegistry のインスタンスではない場合、このプロパティを設定しても効果はありません。

      パラメーター:
      selectorHeaderName - セレクターヘッダーに使用する名前、またはセレクターヘッダーのサポートを無効にする場合は null または空白
      導入:
      4.3.17
      関連事項:
    • setTaskScheduler

      public void setTaskScheduler(@Nullable TaskScheduler taskScheduler)
      TaskScheduler を構成して、ハートビートサポートの提供に使用します。このプロパティを設定すると、heartbeatValue も "10000, 10000" に設定されます。

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

      導入:
      4.2
    • getTaskScheduler

      public @Nullable TaskScheduler getTaskScheduler()
      設定された TaskScheduler を返します。
      導入:
      4.2
    • setHeartbeatValue

      public void setHeartbeatValue(long @Nullable [] heartbeat)
      ハートビート設定の値を構成します。最初の数値は、サーバーがハートビートを書き込むまたは送信する頻度を表します。2 番目は、クライアントが書き込む頻度です。0 はハートビートがないことを意味します。

      デフォルトでは、taskScheduler の場合を除き、これは "0, 0" に設定されます。taskScheduler の場合、デフォルトは "10000,10000" (ミリ秒単位)になります。

      導入:
      4.2
    • getHeartbeatValue

      public long @Nullable [] getHeartbeatValue()
      ハートビート設定の構成値。
      導入:
      4.2
    • setHeaderInitializer

      public void setHeaderInitializer(@Nullable MessageHeaderInitializer headerInitializer)
      MessageHeaderInitializer を構成して、クライアント送信チャネルに送信されるすべてのメッセージのヘッダーに適用します。

      デフォルトでは、このプロパティは設定されていません。

      導入:
      4.1
    • getHeaderInitializer

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

      public void startInternal()
      オーバーライド:
      クラス AbstractBrokerMessageHandlerstartInternal 
    • stopInternal

      public void stopInternal()
      オーバーライド:
      クラス AbstractBrokerMessageHandlerstopInternal 
    • handleMessageInternal

      protected void handleMessageInternal(Message<?> message)
      次で指定:
      クラス AbstractBrokerMessageHandlerhandleMessageInternal 
    • sendMessageToSubscribers

      protected void sendMessageToSubscribers(@Nullable StringSE destination, Message<?> message)
    • toString

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