如何仅将 websocket 消息从服务器发送到特定用户?
我的 webapp 有 spring 安全设置并使用 websocket。我在尝试仅将消息从服务器发送给特定用户时遇到了棘手的问题。
我阅读手册的理解来自我们可以做的服务器
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}”,实际:未收到任何消息