Class UserRegistryMessageHandler
- java.lang.Object
- org.springframework.messaging.simp.user.UserRegistryMessageHandler
- All Implemented Interfaces:
EventListener
,ApplicationListener<BrokerAvailabilityEvent>
,MessageHandler
public class UserRegistryMessageHandler extends Object implements MessageHandler, ApplicationListener<BrokerAvailabilityEvent>
MessageHandler
that handles user registry broadcasts from other application servers and periodically broadcasts the content of the local user registry.The aggregated information is maintained in a
MultiServerUserRegistry
.- Since:
- 4.2
- Author:
- Rossen Stoyanchev
Constructor Summary
Constructors Constructor Description UserRegistryMessageHandler(MultiServerUserRegistry userRegistry, SimpMessagingTemplate brokerTemplate, String broadcastDestination, TaskScheduler scheduler)
Constructor.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getBroadcastDestination()
Return the configured destination for broadcasting UserRegistry information.long
getRegistryExpirationPeriod()
Return the configured registry expiration period.void
handleMessage(Message<?> message)
Handle the given message.void
onApplicationEvent(BrokerAvailabilityEvent event)
Handle an application event.void
setRegistryExpirationPeriod(long milliseconds)
Configure the amount of time (in milliseconds) before a remote user registry snapshot is considered expired.
Constructor Detail
UserRegistryMessageHandler
public UserRegistryMessageHandler(MultiServerUserRegistry userRegistry, SimpMessagingTemplate brokerTemplate, String broadcastDestination, TaskScheduler scheduler)
Constructor.- Parameters:
userRegistry
- the registry with local and remote user registry informationbrokerTemplate
- template for broadcasting local registry informationbroadcastDestination
- the destination to broadcast toscheduler
- the task scheduler to use
Method Detail
getBroadcastDestination
public String getBroadcastDestination()
Return the configured destination for broadcasting UserRegistry information.
setRegistryExpirationPeriod
public void setRegistryExpirationPeriod(long milliseconds)
Configure the amount of time (in milliseconds) before a remote user registry snapshot is considered expired.By default this is set to 20 seconds (value of 20000).
- Parameters:
milliseconds
- the expiration period in milliseconds
getRegistryExpirationPeriod
public long getRegistryExpirationPeriod()
Return the configured registry expiration period.
onApplicationEvent
public void onApplicationEvent(BrokerAvailabilityEvent event)
Description copied from interface:ApplicationListener
Handle an application event.- Specified by:
onApplicationEvent
in interfaceApplicationListener<BrokerAvailabilityEvent>
- Parameters:
event
- the event to respond to
handleMessage
public void handleMessage(Message<?> message) throws MessagingException
Description copied from interface:MessageHandler
Handle the given message.- Specified by:
handleMessage
in interfaceMessageHandler
- Parameters:
message
- the message to be handled- Throws:
MessagingException
- if the handler failed to process the message