Отправить по WebSocket событие из SessionEndedListener SpringBoot

Я пытаюсь отправить событие по вебсокету на клиент, о том что сеанс окончен. Для вызова модального окна с соответствующем сообщении. Когда время сеанса истекло, у меня вызывается следующий метод:

    public void onApplicationEvent(SessionDestroyedEvent event) {

        for (SecurityContext securityContext : event.getSecurityContexts()) {
            Authentication authentication = securityContext.getAuthentication();
            SessionHolder sessionHolder = (SessionHolder) authentication.getPrincipal();

            if (sessionHolder != null && sessionHolder.getSessionId() != null){
                createSocketEvent(sessionHolder.getClient().getId(), sessionHolder.getSessionId());
            }
        }
    }

createSocketEvent должен отправить на клиент событие, но текущее событие не приходит.

private void createSocketEvent(UUID clientId, String session) {
        SocketClientEvent event = new SocketClientEvent();
        event.setClientId(clientId);
        event.setType(SocketClientEvent.Type.SESSION_DESTROY);
        simpMessagingTemplate.convertAndSendToUser(session, "/queue/ended", event);
    }

Если я вызываю метод createSocketEvent из любого обработчика когда пользователь авторизован, событие успешно уходит на клиент.


Ответы (0 шт):