クラス SimpleBrokerMessageHandler
- 実装されたすべてのインターフェース:
Aware
、ApplicationEventPublisherAware
、Lifecycle
、Phased
、SmartLifecycle
、MessageHandler
SimpMessageType
で定義されたメッセージ型を認識し、SubscriptionRegistry
を使用してサブスクリプションを追跡し、サブスクライバーにメッセージを送信する「単純な」メッセージブローカー。- 導入:
- 4.0
- 作成者:
- Rossen Stoyanchev, Juergen Hoeller, Sam Brannen
フィールドサマリー
クラス org.springframework.messaging.simp.broker.AbstractBrokerMessageHandler から継承されたフィールド
logger
インターフェース org.springframework.context.SmartLifecycle から継承されたフィールド
DEFAULT_PHASE
コンストラクターのサマリー
コンストラクター説明SimpleBrokerMessageHandler
(SubscribableChannel clientInboundChannel, MessageChannel clientOutboundChannel, SubscribableChannel brokerChannel, CollectionSE<StringSE> destinationPrefixes) 指定されたメッセージチャネルと宛先プレフィックスを使用して SimpleBrokerMessageHandler インスタンスを作成します。方法の概要
修飾子と型メソッド説明設定済みのヘッダー初期化子を返します。long[]
ハートビート設定の構成値。設定された TaskScheduler を返します。protected void
handleMessageInternal
(Message<?> message) protected void
sendMessageToSubscribers
(StringSE destination, Message<?> message) void
setCacheLimit
(IntegerSE cacheLimit) 設定されると、指定されたキャッシュ制限が基礎となる SubscriptionRegistry に渡され、そこでデフォルトが上書きされます。void
setHeaderInitializer
(MessageHeaderInitializer headerInitializer) MessageHeaderInitializer
を構成して、クライアント送信チャネルに送信されるすべてのメッセージのヘッダーに適用します。void
setHeartbeatValue
(long[] heartbeat) ハートビート設定の値を構成します。void
setPathMatcher
(PathMatcher pathMatcher) 構成すると、指定された PathMatcher が基になる SubscriptionRegistry に渡され、宛先をサブスクリプションに一致させるために使用されます。void
setSelectorHeaderName
(StringSE selectorHeaderName) サブスクリプションに一致するメッセージをフィルター処理するために、サブスクリプションメッセージに含めることができるヘッダーの名前を構成します。void
setSubscriptionRegistry
(SubscriptionRegistry subscriptionRegistry) サブスクリプションの保存に使用するカスタムSubscriptionRegistry
を構成します。void
setTaskScheduler
(TaskScheduler taskScheduler) TaskScheduler
を構成して、ハートビートサポートの提供に使用します。void
void
toString()
クラス org.springframework.messaging.simp.broker.AbstractBrokerMessageHandler から継承されたメソッド
checkDestinationPrefix, getApplicationEventPublisher, getBrokerChannel, getClientInboundChannel, getClientOutboundChannel, getClientOutboundChannelForSession, getDestinationPrefixes, getPhase, handleMessage, isAutoStartup, isBrokerAvailable, isPreservePublishOrder, isRunning, publishBrokerAvailableEvent, publishBrokerUnavailableEvent, setApplicationEventPublisher, setAutoStartup, setPhase, setPreservePublishOrder, setUserDestinationPredicate, start, stop, stop
コンストラクターの詳細
SimpleBrokerMessageHandler
public SimpleBrokerMessageHandler(SubscribableChannel clientInboundChannel, MessageChannel clientOutboundChannel, SubscribableChannel brokerChannel, CollectionSE<StringSE> destinationPrefixes) 指定されたメッセージチャネルと宛先プレフィックスを使用して SimpleBrokerMessageHandler インスタンスを作成します。- パラメーター:
clientInboundChannel
- クライアントからメッセージを受信するためのチャネル (たとえば、WebSocket クライアント)clientOutboundChannel
- クライアントにメッセージを送信するためのチャネル (たとえば、WebSocket クライアント)brokerChannel
- アプリケーションがブローカーにメッセージを送信するためのチャネルdestinationPrefixes
- メッセージを除外するために使用するプレフィックス
メソッドの詳細
setSubscriptionRegistry
サブスクリプションの保存に使用するカスタムSubscriptionRegistry
を構成します。注 : カスタムレジストリが
DefaultSubscriptionRegistry
のインスタンスではない場合、構成されたPathMatcher
、キャッシュ制限、およびセレクターヘッダー名は使用されないため、カスタムレジストリで直接構成する必要があります。getSubscriptionRegistry
setPathMatcher
構成すると、指定された PathMatcher が基になる SubscriptionRegistry に渡され、宛先をサブスクリプションに一致させるために使用されます。デフォルトは標準
AntPathMatcher
です。基礎となる SubscriptionRegistry が
DefaultSubscriptionRegistry
のインスタンスではない場合、このプロパティを設定しても効果はありません。setCacheLimit
設定されると、指定されたキャッシュ制限が基礎となる SubscriptionRegistry に渡され、そこでデフォルトが上書きされます。標準
DefaultSubscriptionRegistry
では、デフォルトのキャッシュ制限は 1024 です。基礎となる SubscriptionRegistry が
DefaultSubscriptionRegistry
のインスタンスではない場合、このプロパティを設定しても効果はありません。setSelectorHeaderName
サブスクリプションに一致するメッセージをフィルター処理するために、サブスクリプションメッセージに含めることができるヘッダーの名前を構成します。ヘッダー値は、サブスクリプションに一致するメッセージのヘッダーに適用される Spring Expression Language (SpEL) ブール式であることが想定されます。
例:
headers.foo == 'bar'
デフォルトでは、セレクターヘッダー名は
null
に設定されており、この機能は無効になっています。これを"selector"
または別の名前に設定して、セレクターヘッダーのサポートを有効にすることができます。基礎となる SubscriptionRegistry が
DefaultSubscriptionRegistry
のインスタンスではない場合、このプロパティを設定しても効果はありません。- パラメーター:
selectorHeaderName
- セレクターヘッダーに使用する名前、またはセレクターヘッダーのサポートを無効にする場合はnull
または空白- 導入:
- 4.3.17
- 関連事項:
setTaskScheduler
TaskScheduler
を構成して、ハートビートサポートの提供に使用します。このプロパティを設定すると、heartbeatValue
も "10000, 10000" に設定されます。デフォルトでは、これは設定されていません。
- 導入:
- 4.2
getTaskScheduler
設定された TaskScheduler を返します。- 導入:
- 4.2
setHeartbeatValue
ハートビート設定の値を構成します。最初の数値は、サーバーがハートビートを書き込むまたは送信する頻度を表します。2 番目は、クライアントが書き込む頻度です。0 はハートビートがないことを意味します。デフォルトでは、
taskScheduler
の場合を除き、これは "0, 0" に設定されます。taskScheduler
の場合、デフォルトは "10000,10000" (ミリ秒単位)になります。- 導入:
- 4.2
getHeartbeatValue
ハートビート設定の構成値。- 導入:
- 4.2
setHeaderInitializer
MessageHeaderInitializer
を構成して、クライアント送信チャネルに送信されるすべてのメッセージのヘッダーに適用します。デフォルトでは、このプロパティは設定されていません。
- 導入:
- 4.1
getHeaderInitializer
設定済みのヘッダー初期化子を返します。- 導入:
- 4.1
startInternal
public void startInternal()- オーバーライド:
- クラス
AbstractBrokerMessageHandler
のstartInternal
stopInternal
public void stopInternal()- オーバーライド:
- クラス
AbstractBrokerMessageHandler
のstopInternal
handleMessageInternal
- 次で指定:
- クラス
AbstractBrokerMessageHandler
のhandleMessageInternal
sendMessageToSubscribers
toString