我有一个已注册用户的Web应用程序,我想向具有唯一用户ID的用户推送消息。为了能够向客户端发送消息,我需要知道如何在@sendto
注释中传递唯一的用户ID。
这是注解
@SendTo("/topic/uniqueuserid")
public Greeting greeting(HelloMessage message) throws Exception {
int uniqueuserid;
Thread.sleep(1000); // simulated delay
return new Greeting("Hello, " + message.getName() + uniqueuserid "!");
}
这是脚的js
stompClient.subscribe('/topic/uniqueuserid', function (greeting) {
showGreeting(JSON.parse(greeting.body).content);
});
如何在
@SendTo("/topic/uniqueuserid")
中传递唯一的用户ID 最佳答案
您可以在方法参数中使用@DestinationVariable
批注,如下所示:
@MessageMapping("/mychat/{uniqueUserId}")
@SendTo("/topic/{uniqueUserId}")
public Message message(@DestinationVariable("uniqueUserId") Long uniqueUserId, HelloMessage message) {
logger.info("Unique user id: {}", uniqueUserId);
}