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
SimpUserRegistry
that 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 byUserRegistryMessageHandler
which 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.int
getOrder()
Get the order value of this object.SimpUser
getUser(String userName)
Get the user for the given name.int
getUserCount()
Return the count of all connected users.Set<SimpUser>
getUsers()
Return a snapshot of all connected users.void
onApplicationEvent(ApplicationEvent event)
Handle an application event.boolean
supportsEventType(Class<? extends ApplicationEvent> eventType)
Determine whether this listener actually supports the given event type.boolean
supportsSourceType(Class<?> sourceType)
Determine whether this listener actually supports the given source type.String
toString()
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:Ordered
Get the order value of this object.Higher values are interpreted as lower priority. As a consequence, the object with the lowest value has the highest priority (somewhat analogous to Servlet
load-on-startup
values).Same order values will result in arbitrary sort positions for the affected objects.
- Specified by:
getOrder
in interfaceOrdered
- Returns:
- the order value
- See Also:
Ordered.HIGHEST_PRECEDENCE
,Ordered.LOWEST_PRECEDENCE
supportsEventType
public boolean supportsEventType(Class<? extends ApplicationEvent> eventType)
Description copied from interface:SmartApplicationListener
Determine whether this listener actually supports the given event type.- Specified by:
supportsEventType
in interfaceSmartApplicationListener
- Parameters:
eventType
- the event type (nevernull
)
supportsSourceType
public boolean supportsSourceType(Class<?> sourceType)
Description copied from interface:SmartApplicationListener
Determine whether this listener actually supports the given source type.- Specified by:
supportsSourceType
in interfaceSmartApplicationListener
- Parameters:
sourceType
- the source type, ornull
if no source
onApplicationEvent
public void onApplicationEvent(ApplicationEvent event)
Description copied from interface:ApplicationListener
Handle an application event.- Specified by:
onApplicationEvent
in interfaceApplicationListener<ApplicationEvent>
- Parameters:
event
- the event to respond to
getUser
public SimpUser getUser(String userName)
Description copied from interface:SimpUserRegistry
Get the user for the given name.- Specified by:
getUser
in interfaceSimpUserRegistry
- Parameters:
userName
- the name of the user to look up- Returns:
- the user, or
null
if not connected
getUsers
public Set<SimpUser> getUsers()
Description copied from interface:SimpUserRegistry
Return a snapshot of all connected users.The returned set is a copy and will not reflect further changes.
- Specified by:
getUsers
in interfaceSimpUserRegistry
- Returns:
- the connected users, or an empty set if none
getUserCount
public int getUserCount()
Description copied from interface:SimpUserRegistry
Return the count of all connected users.- Specified by:
getUserCount
in interfaceSimpUserRegistry
- Returns:
- the number of connected users
findSubscriptions
public Set<SimpSubscription> findSubscriptions(SimpSubscriptionMatcher matcher)
Description copied from interface:SimpUserRegistry
Find subscriptions with the given matcher.- Specified by:
findSubscriptions
in interfaceSimpUserRegistry
- Parameters:
matcher
- the matcher to use- Returns:
- a set of matching subscriptions, or an empty set if none