Як надсилати повідомлення з веб-сервера з сервера лише певному користувачеві?
Мій веб-додаток налаштовано на весняну безпеку та використовує веб-сокет. Я стикаюся з хитрою проблемою, намагаючись надіслати повідомлення з сервера лише певному користувачеві .
Я зрозумів, що читаю посібник , з сервера, який ми можемо зробити
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" лише для цього користувача, фактично: нічого не отримано