public class SimpleBrokerMessageHandler extends AbstractBrokerMessageHandler
SimpMessageType, keeps track of subscriptions with the help of a
 SubscriptionRegistry and sends messages to subscribers.loggerDEFAULT_PHASE| Constructor and Description | 
|---|
| SimpleBrokerMessageHandler(SubscribableChannel clientInboundChannel,
                          MessageChannel clientOutboundChannel,
                          SubscribableChannel brokerChannel,
                          Collection<String> destinationPrefixes)Create a SimpleBrokerMessageHandler instance with the given message channels
 and destination prefixes. | 
| Modifier and Type | Method and Description | 
|---|---|
| MessageHeaderInitializer | getHeaderInitializer()Return the configured header initializer. | 
| long[] | getHeartbeatValue()The configured value for the heart-beat settings. | 
| SubscriptionRegistry | getSubscriptionRegistry() | 
| TaskScheduler | getTaskScheduler()Return the configured TaskScheduler. | 
| protected void | handleMessageInternal(Message<?> message) | 
| protected void | sendMessageToSubscribers(String destination,
                        Message<?> message) | 
| void | setCacheLimit(Integer cacheLimit)When configured, the specified cache limit is passed down to the
 underlying SubscriptionRegistry, overriding any default there. | 
| void | setHeaderInitializer(MessageHeaderInitializer headerInitializer)Configure a  MessageHeaderInitializerto apply to the headers
 of all messages sent to the client outbound channel. | 
| void | setHeartbeatValue(long[] heartbeat)Configure the value for the heart-beat settings. | 
| void | setPathMatcher(PathMatcher pathMatcher)When configured, the given PathMatcher is passed down to the underlying
 SubscriptionRegistry to use for matching destination to subscriptions. | 
| void | setSelectorHeaderName(String selectorHeaderName)Configure the name of a header that a subscription message can have for
 the purpose of filtering messages matched to the subscription. | 
| void | setSubscriptionRegistry(SubscriptionRegistry subscriptionRegistry)Configure a custom SubscriptionRegistry to use for storing subscriptions. | 
| void | setTaskScheduler(TaskScheduler taskScheduler)Configure the  TaskSchedulerto
 use for providing heartbeat support. | 
| void | startInternal() | 
| void | stopInternal() | 
| String | toString() | 
checkDestinationPrefix, getApplicationEventPublisher, getBrokerChannel, getClientInboundChannel, getClientOutboundChannel, getClientOutboundChannelForSession, getDestinationPrefixes, handleMessage, isAutoStartup, isBrokerAvailable, isPreservePublishOrder, isRunning, publishBrokerAvailableEvent, publishBrokerUnavailableEvent, setApplicationEventPublisher, setAutoStartup, setPreservePublishOrder, start, stop, stopclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetPhasepublic SimpleBrokerMessageHandler(SubscribableChannel clientInboundChannel, MessageChannel clientOutboundChannel, SubscribableChannel brokerChannel, Collection<String> destinationPrefixes)
clientInboundChannel - the channel for receiving messages from clients (e.g. WebSocket clients)clientOutboundChannel - the channel for sending messages to clients (e.g. WebSocket clients)brokerChannel - the channel for the application to send messages to the brokerdestinationPrefixes - prefixes to use to filter out messagespublic void setSubscriptionRegistry(SubscriptionRegistry subscriptionRegistry)
Note that when a custom PathMatcher is configured via
 setPathMatcher(org.springframework.util.PathMatcher), if the custom registry is not an instance of
 DefaultSubscriptionRegistry, the provided PathMatcher is not used
 and must be configured directly on the custom registry.
public SubscriptionRegistry getSubscriptionRegistry()
public void setPathMatcher(@Nullable PathMatcher pathMatcher)
Default is a standard AntPathMatcher.
public void setCacheLimit(@Nullable Integer cacheLimit)
With a standard DefaultSubscriptionRegistry, the default
 cache limit is 1024.
public void setSelectorHeaderName(@Nullable String selectorHeaderName)
For example:
headers.foo == 'bar'
By default this is set to "selector". You can set it to a different
 name, or to null to turn off support for a selector header.
selectorHeaderName - the name to use for a selector headersetSubscriptionRegistry(org.springframework.messaging.simp.broker.SubscriptionRegistry), 
DefaultSubscriptionRegistry.setSelectorHeaderName(String)public void setTaskScheduler(@Nullable TaskScheduler taskScheduler)
TaskScheduler to
 use for providing heartbeat support. Setting this property also sets the
 heartbeatValue to "10000, 10000".
 By default this is not set.
@Nullable public TaskScheduler getTaskScheduler()
public void setHeartbeatValue(@Nullable long[] heartbeat)
By default this is set to "0, 0" unless the taskScheduler in which case the default becomes "10000,10000"
 (in milliseconds).
@Nullable public long[] getHeartbeatValue()
public void setHeaderInitializer(@Nullable MessageHeaderInitializer headerInitializer)
MessageHeaderInitializer to apply to the headers
 of all messages sent to the client outbound channel.
 By default this property is not set.
@Nullable public MessageHeaderInitializer getHeaderInitializer()
public void startInternal()
startInternal in class AbstractBrokerMessageHandlerpublic void stopInternal()
stopInternal in class AbstractBrokerMessageHandlerprotected void handleMessageInternal(Message<?> message)
handleMessageInternal in class AbstractBrokerMessageHandlerprotected void sendMessageToSubscribers(@Nullable String destination, Message<?> message)