Come inviare un messaggio websocket dal server solo a un utente specifico?
La mia webapp ha una configurazione di sicurezza primaverile e utilizza websocket. Sto riscontrando un problema complicato nel tentativo di inviare un messaggio dal server solo a un utente specifico .
La mia comprensione dalla lettura del manuale proviene dal server che possiamo fare
simpMessagingTemplate.convertAndSend("/user/{username}/reply", reply);
E dal lato client:
stompClient.subscribe('/user/reply', handler);
Ma non sono mai riuscito a richiamare la richiamata dell'abbonamento. Ho provato molti percorsi diversi ma senza fortuna.
Se lo invio a / topic / reply funziona ma anche tutti gli altri utenti collegati lo riceveranno.
Per illustrare il problema ho creato questo piccolo progetto su github: https://github.com/gerrytan/wsproblem
Passaggi per riprodurre:
1) Clona e compila il progetto (assicurati di usare jdk 1.7 e maven 3.1)
$ git clone https://github.com/gerrytan/wsproblem.git
$ cd wsproblem
$ mvn jetty:run
2) Vai a http://localhost:8080
, accedi utilizzando bob / test o jim / test
3) Fare clic su "Richiedi messaggio specifico utente". Previsto: un messaggio "ciao {nome utente}" viene visualizzato accanto a "Messaggio ricevuto solo a me" solo per questo utente, Attuale: non viene ricevuto nulla