Spring框架web sockets独特的@SendTo注解

Posted

技术标签:

【中文标题】Spring框架web sockets独特的@SendTo注解【英文标题】:Spring framework web sockets unique @SendTo annotation 【发布时间】:2017-10-12 09:52:13 【问题描述】:

我有一个已注册用户的网络应用程序,我想将消息推送给具有唯一用户 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 "!");

这就是 stomp js

stompClient.subscribe('/topic/uniqueuserid', function (greeting) 
            showGreeting(JSON.parse(greeting.body).content);
        );

如何在@SendTo("/topic/uniqueuserid") 中传递唯一的用户 ID

【问题讨论】:

也许***.com/questions/27047310/… 【参考方案1】:

您可以在方法参数中使用@DestinationVariable 注释,如下所示:

@MessageMapping("/mychat/uniqueUserId")
@SendTo("/topic/uniqueUserId")
public Message message(@DestinationVariable("uniqueUserId") Long uniqueUserId, HelloMessage message) 
    logger.info("Unique user id: ", uniqueUserId);

【讨论】:

以上是关于Spring框架web sockets独特的@SendTo注解的主要内容,如果未能解决你的问题,请参考以下文章

一起学Spring之Web基础篇

框架--1django

新一代Spring Web框架WebFlux!

Spring MVC 入门示例讲解

Spring基础学习

详谈Spring定义