我克隆了一个在github上使用spring boot websocket的聊天应用程序项目。 这里是代码:春季启动websocket上的客户端和服务器映射消息如何
@MessageMapping("/chat.private.{username}")
public void filterPrivateMessage(@Payload ChatMessage message, @DestinationVariable("username") String username, Principal principal) {
message.setUsername(principal.getName());
simpMessagingTemplate.convertAndSend("/user/" + username + "/exchange/amq.direct/chat.message", message);
}
实施例:用户名变量是:[email protected],它指的是链接到客户端订阅应该是:/user/[email protected]/exchange /amq.direct/chat.message
但在客户端代码:
chatSocket = Stomp.over(new SockJS(url)); //use sockjs and stompjs
chatSocket.subscribe("/user/exchange/amq.direct/chat.message"
我不知道如何向应用可以发送到正确的客户端,当客户端听不同的网址(没有[email protected])。 有人可以向我解释吗?
谢谢。