我正在尝试使用 stomp 向特定用户发送消息。我创建了一个类来确定 userId。 这是代码:
虽然我有两个用户(1 和 2)互相发送私人消息,但他们无法收到消息,但控制台可以记录他们的活动:
我该怎么做才能让他们都收到消息?
我尝试让客户订阅
/user/{username}/private
,但没成功。
SimpMessagingTemplate#convertAndSendToUser
将在内部将目的地转换为 userDestinationPrefix + username + destination
(例如,/user/username/destination。其中 /user
是默认的 userDestinationPrefix)。因此可以使用以下脚本来订阅使用 this.template.convertAndSendToUser(userName, "/private", chatMessage);
发送的消息
const username = 'user1';
stompClient.subscribe(`/user/${username}/private`, message=> {
console.log(message.body)
});
要广播事件,请使用
SimpMessagingTemplate#convertAndSend
将消息发布到主题(例如 /topic/chatroom1),并在脚本中订阅该消息,如下所示。
stompClient.subscribe(`/topic/chatroom1`, message=> {
console.log(message.body)
});