Как отправить сообщение websocket с сервера только конкретному пользователю?
Мое веб-приложение имеет настройку безопасности Spring и использует веб-сокет. У меня возникла сложная проблема при попытке отправить сообщение с сервера только конкретному пользователю .
Я понял, что читал руководство , с сервера, который мы можем сделать
simpMessagingTemplate.convertAndSend("/user/{username}/reply", reply);
А на стороне клиента:
stompClient.subscribe('/user/reply', handler);
Но я никогда не мог вызвать обратный вызов подписки. Я пробовал много разных путей, но безуспешно.
Если я отправлю его в / topic / reply, он будет работать, но все остальные подключенные пользователи тоже получат его.
Чтобы проиллюстрировать проблему, я создал этот небольшой проект на github: https://github.com/gerrytan/wsproblem
Действия по воспроизведению:
1) Клонируйте и соберите проект (убедитесь, что вы используете jdk 1.7 и maven 3.1)
$ git clone https://github.com/gerrytan/wsproblem.git
$ cd wsproblem
$ mvn jetty:run
2) Перейдите к http://localhost:8080
, войдите в систему с помощью bob / test или jim / test.
3) Щелкните «Запросить сообщение для конкретного пользователя». Ожидается: сообщение "hello {username}" отображается рядом с "Received Message To Me Only" только для этого пользователя, Фактически: ничего не получено