Class MultiServerUserRegistry
- java.lang.Object
- org.springframework.messaging.simp.user.MultiServerUserRegistry
- All Implemented Interfaces:
EventListener,ApplicationListener<ApplicationEvent>,SmartApplicationListener,Ordered,SimpUserRegistry
public class MultiServerUserRegistry extends Object implements SimpUserRegistry, SmartApplicationListener
SimpUserRegistrythat looks up users in a "local" user registry as well as a set of "remote" user registries. The local registry is provided as a constructor argument while remote registries are updated via broadcasts handled byUserRegistryMessageHandlerwhich in turn notifies this registry when updates are received.- Since:
- 4.2
- Author:
- Rossen Stoyanchev
Field Summary
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor Summary
Constructors Constructor Description MultiServerUserRegistry(SimpUserRegistry localRegistry)Create an instance wrapping the local user registry.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Set<SimpSubscription>findSubscriptions(SimpSubscriptionMatcher matcher)Find subscriptions with the given matcher.intgetOrder()Determine this listener's order in a set of listeners for the same event.SimpUsergetUser(String userName)Get the user for the given name.intgetUserCount()Return the count of all connected users.Set<SimpUser>getUsers()Return a snapshot of all connected users.voidonApplicationEvent(ApplicationEvent event)Handle an application event.booleansupportsEventType(Class<? extends ApplicationEvent> eventType)Determine whether this listener actually supports the given event type.booleansupportsSourceType(Class<?> sourceType)Determine whether this listener actually supports the given source type.StringtoString()
Constructor Detail
MultiServerUserRegistry
public MultiServerUserRegistry(SimpUserRegistry localRegistry)
Create an instance wrapping the local user registry.
Method Detail
getOrder
public int getOrder()
Description copied from interface:SmartApplicationListenerDetermine this listener's order in a set of listeners for the same event.The default implementation returns
Ordered.LOWEST_PRECEDENCE.- Specified by:
getOrderin interfaceOrdered- Specified by:
getOrderin interfaceSmartApplicationListener- Returns:
- the order value
- See Also:
Ordered.HIGHEST_PRECEDENCE,Ordered.LOWEST_PRECEDENCE
supportsEventType
public boolean supportsEventType(Class<? extends ApplicationEvent> eventType)
Description copied from interface:SmartApplicationListenerDetermine whether this listener actually supports the given event type.- Specified by:
supportsEventTypein interfaceSmartApplicationListener- Parameters:
eventType- the event type (nevernull)
supportsSourceType
public boolean supportsSourceType(@Nullable Class<?> sourceType)
Description copied from interface:SmartApplicationListenerDetermine whether this listener actually supports the given source type.The default implementation always returns
true.- Specified by:
supportsSourceTypein interfaceSmartApplicationListener- Parameters:
sourceType- the source type, ornullif no source
onApplicationEvent
public void onApplicationEvent(ApplicationEvent event)
Description copied from interface:ApplicationListenerHandle an application event.- Specified by:
onApplicationEventin interfaceApplicationListener<ApplicationEvent>- Parameters:
event- the event to respond to
getUser
@Nullable public SimpUser getUser(String userName)
Description copied from interface:SimpUserRegistryGet the user for the given name.- Specified by:
getUserin interfaceSimpUserRegistry- Parameters:
userName- the name of the user to look up- Returns:
- the user, or
nullif not connected
getUsers
public Set<SimpUser> getUsers()
Description copied from interface:SimpUserRegistryReturn a snapshot of all connected users.The returned set is a copy and will not reflect further changes.
- Specified by:
getUsersin interfaceSimpUserRegistry- Returns:
- the connected users, or an empty set if none
getUserCount
public int getUserCount()
Description copied from interface:SimpUserRegistryReturn the count of all connected users.- Specified by:
getUserCountin interfaceSimpUserRegistry- Returns:
- the number of connected users
findSubscriptions
public Set<SimpSubscription> findSubscriptions(SimpSubscriptionMatcher matcher)
Description copied from interface:SimpUserRegistryFind subscriptions with the given matcher.- Specified by:
findSubscriptionsin interfaceSimpUserRegistry- Parameters:
matcher- the matcher to use- Returns:
- a set of matching subscriptions, or an empty set if none