I've read Java EE documentation and for me is unclear one thing. According to API, the only way to find another Session is a code like this: (assuming that we've identifier of other session):
import javax.websocket.Session;
...
private static Session findOtherSessionById(Session user, String id) {
for (Session session : user.getOpenSessions()) {
if (id.equals(session.getId())) {
return session;
}
}
return null;
}
But when we've thousands of users, this code is a performance bottleneck.
So, is there a way to get Session by id fast without using own ConcurrentHashMap for this? Or maybe some application server has undocummented feature for this (for me Wildfly would be great)?