哦,
client side no need to known about current user服务器会为你做到这一点。
在服务器端,使用以下方式将消息发送给用户:
simpMessagingTemplate.convertAndSendToUser(username, "/queue/reply", message);
注意:使用queue,而不是topic,Spring始终queue与sendToUser
在客户端
stompClient.subscribe("/user/queue/reply", handler);说明
当任何websocket连接打开时,Spring会为其分配一个
session id(而不是HttpSession为每个连接分配)。当你的客户订阅以开头的频道时
/user/,例如:
/user/queue/reply,你的服务器实例将订阅一个名为
queue/reply-user[session id]
使用发送消息给用户时,例如:用户名是admin 你将写
simpMessagingTemplate.convertAndSendToUser("admin", "/queue/reply", message);Spring将确定哪个
session id映射到user
admin。例如:它发现了两个会话
wsxedc123和
thnujm456,
Spring会将其转换为2个目标
queue/reply-userwsxedc123和
queue/reply-userthnujm456,并将带有2个目标的消息发送到消息代理。
消息代理接收消息并将其提供回你的服务器实例,该消息具有与每个会话相对应的保持会话(WebSocket会话可以由一个或多个服务器保持)。Spring会将消息翻译为destination(例如:)
user/queue/reply和
session id(例如:)
wsxedc123。然后,它将消息发送到相应的
Websocket session



