Я использую json веб-токен, и в соответствии с некоторыми уроками, я устанавливаю имя пользователя, как показано ниже
public class MyChannelInterceptor implements ChannelInterceptor {
private static Logger logger = LoggerFactory.getLogger(MyChannelInterceptor.class);
@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {
StompHeaderAccessor accessor = StompHeaderAccessor.wrap(message);
if (StompCommand.CONNECT.equals(accessor.getCommand())) {
String jwt = accessor.getNativeHeader("authorization").get(0);
String userId = extractUserIdFromJwt;
logger.info("connected: " + userId);
Principal principal = new Principal() {
@Override
public String getName() {
return userId;
}
};
accessor.setUser(principal);
} else if (StompCommand.DISCONNECT.equals(accessor.getCommand())) {
// Principal principal = accessor.getUser();
// logger.info(principal.getName() + " disconnect");
// how to determine who is disconnecting?
// the code commented could not work
}
return message;
}
}
Мне нужно выполнить некоторую операцию очистки, когда кто-то подключен, но я не знаете, какой пользователь отключен, как этого добиться?