Package org.apache.myfaces.push.cdi
Class WebsocketSessionManager
- java.lang.Object
-
- org.apache.myfaces.push.cdi.WebsocketSessionManager
-
@ApplicationScoped public class WebsocketSessionManager extends Object
-
-
Constructor Summary
Constructors Constructor Description WebsocketSessionManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
addOrUpdateSession(String channelToken, jakarta.websocket.Session session)
void
clearSessions()
void
deregisterUser(Serializable user, String channel, String channelToken)
Set<String>
getChannelTokensForUser(Serializable user, String channel)
Queue<String>
getRestoredQueue()
ConcurrentLRUCache<String,Collection<Reference<jakarta.websocket.Session>>>
getSessionMap()
ConcurrentMap<org.apache.myfaces.push.cdi.WebsocketSessionManager.UserChannelKey,Set<String>>
getUserMap()
void
init()
void
initSessionMap(ExternalContext context)
void
registerSessionToken(String channelToken)
void
registerUser(Serializable user, String channel, String channelToken)
void
removeChannelToken(String channelToken)
Remove the channelToken and close all sessions associated with it.void
removeSession(String channelToken, jakarta.websocket.Session session)
Remove the Session associated to the channelToken.protected Set<Future<Void>>
send(String channelToken, Object message)
void
synchronizeSessionInstances()
-
-
-
Method Detail
-
init
@PostConstruct public void init()
-
getSessionMap
public ConcurrentLRUCache<String,Collection<Reference<jakarta.websocket.Session>>> getSessionMap()
-
getUserMap
public ConcurrentMap<org.apache.myfaces.push.cdi.WebsocketSessionManager.UserChannelKey,Set<String>> getUserMap()
-
registerSessionToken
public void registerSessionToken(String channelToken)
-
registerUser
public void registerUser(Serializable user, String channel, String channelToken)
-
deregisterUser
public void deregisterUser(Serializable user, String channel, String channelToken)
-
getChannelTokensForUser
public Set<String> getChannelTokensForUser(Serializable user, String channel)
-
initSessionMap
public void initSessionMap(ExternalContext context)
-
clearSessions
public void clearSessions()
-
addOrUpdateSession
public boolean addOrUpdateSession(String channelToken, jakarta.websocket.Session session)
-
removeSession
public void removeSession(String channelToken, jakarta.websocket.Session session)
Remove the Session associated to the channelToken. This happens when the websocket connection is closed. Please note the connection can be closed/reopened, so this method should not block another connection using the same channelToken. To destroy the channel token, WebsocketViewBean is used to destroy the channel token at view expiration time.- Parameters:
channelToken
-
-
removeChannelToken
public void removeChannelToken(String channelToken)
Remove the channelToken and close all sessions associated with it. Happens, when session scope or view scope is destroyed.- Parameters:
channelToken
-
-
synchronizeSessionInstances
public void synchronizeSessionInstances()
-
-