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 Details

    • UserRegistryMessageHandler

      public UserRegistryMessageHandler(MultiServerUserRegistry userRegistry, SimpMessagingTemplate brokerTemplate, String broadcastDestination, TaskScheduler scheduler)
      Constructor.
      Parameters:
      userRegistry - the registry with local and remote user registry information
      brokerTemplate - template for broadcasting local registry information
      broadcastDestination - the destination to broadcast to
      scheduler - the task scheduler to use
  • Method Details

    • 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 interface ApplicationListener<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 interface MessageHandler
      Parameters:
      message - the message to be handled
      Throws:
      MessagingException - if the handler failed to process the message