如何从服务器向特定用户发送websocket消息?在Spring上发送消息给特定用户Websocket
我的web应用程序有弹簧安全设置并使用websocket。我遇到了棘手的问题,试图从服务器发送消息到特定用户只有。
我从阅读理解the manual从服务器我们可以做
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
,登录使用任一摆锤/试验或吉姆/测试
3)点击“请求用户特定的信息”。预期:仅显示此用户的“收到的邮件给我”旁边显示“hello {用户名}”消息,实际:没有收到任何邮件
工作你一直在寻找convertAndSendToUser(用户字符串,字符串目的地,T消息)?http://docs.spring.io/spring/docs/4.0.0.M3/javadoc-api /组织/春天框架/消息/ simp/SimpMessagingTemplate.html#convertAndSendToUser%28java.lang.String,%20java.lang.String,%20T%29 –
是试过,但也没有运气 – gerrytan
我一直在私人项目工作,这是我们使用的方法,它正在为我们工作。我认为一个潜在的问题可能是您订阅了“/ user/reply”,并且您正在向“/ user/{username}/reply”发送消息。我认为你应该删除{username}部分并使用convertAndSendToUser(String user,String destination,T message)。 –