Мне нужно получить SessionId websocket, когда происходит соединение с сокетом.
Например, я могу сгенерировать уникальный идентификационный ключ пользователя с помощью:
public class CustomHandshakeHandler extends DefaultHandshakeHandler {
@Override
protected Principal determineUser(ServerHttpRequest request,
WebSocketHandler wsHandler,
Map<String, Object> attributes) {
return new StompPrincipal(UUID.randomUUID().toString());
}
}
Результат будет что-то вроде этого:
CONNECTED↵version:1.1↵heart-beat:0,0↵user-name:d1496b70-7864-4acb-ad37-7541f3deebc2↵↵
Как мне сделать то же самое, но вернуть сокет SessionId?
Пример того, о каком sessionId мы говорим
@MessageMapping("/find")
public void find(SimpMessageHeaderAccessor sha, User user) {
String sessionId = sha.getSessionId();
LOG.debug("New session id - {}, {}", sessionId, user);
// New session id - rs5ahsly, {user: Name, ...}
Repository.add(sessionId, user);
}