在Spring Websocket上向特定用户发送消息
如何仅将websocket消息从服务器发送到特定用户?
我的 webapp 具有弹簧安全设置,并使用 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) 导航到 ,使用 bob/test 或 jim/test 登录http://localhost:8080
3)单击“请求用户特定消息”。预期:“仅收到发送给我的消息”旁边显示消息“hello {username}”,仅针对此用户,实际:未收到任何内容