¿Cómo enviar un mensaje websocket desde el servidor solo a un usuario específico?
Mi aplicación web tiene una configuración de seguridad de primavera y usa websocket. Me encuentro con un problema complicado al intentar enviar un mensaje desde el servidor solo a un usuario específico .
Mi comprensión de la lectura del manual es del servidor que podemos hacer
simpMessagingTemplate.convertAndSend("/user/{username}/reply", reply);
Y del lado del cliente:
stompClient.subscribe('/user/reply', handler);
Pero nunca pude invocar la devolución de llamada de suscripción. He probado muchos caminos diferentes pero no tuve suerte.
Si lo envío a / topic / reply , funciona, pero todos los demás usuarios conectados también lo recibirán.
Para ilustrar el problema, he creado este pequeño proyecto en github: https://github.com/gerrytan/wsproblem
Pasos para reproducir:
1) Clone y compile el proyecto (asegúrese de usar jdk 1.7 y maven 3.1)
$ git clone https://github.com/gerrytan/wsproblem.git
$ cd wsproblem
$ mvn jetty:run
2) Vaya a http://localhost:8080
, inicie sesión usando bob / test o jim / test
3) Haga clic en "Solicitar mensaje específico del usuario". Esperado: se muestra un mensaje "hola {nombre de usuario}" junto a "Mensaje recibido solo para mí" solo para este usuario, Real: no se recibe nada