如何从普通请求调用即@RequestMapping 调用@SendTo

How to call @SendTo from Normal Request Call i.e @RequestMapping

我已经使用 Spring MVC 实现了 Web Socket,它对我来说工作正常,即从一个浏览器工作到另一个使用此代码为那些套接字打开的浏览器。

@MessageMapping("/hello")
    @SendTo("/topic/greetings")
    public HelloMessage greeting(HelloMessage message) throws Exception {
        Thread.sleep(3000); // simulated delay
        return message;
    }

任何人都可以帮助我从正常 api controller.I 中调用 @SendTo("/topic/greetings") 尝试使用它,但它对我不起作用

@RequestMapping(value = "/sendMessage")
    @SendTo("/topic/greetings")
    public HelloMessage sendMessage() throws Exception {
        return new HelloMessage((int) Math.random(), "This is Send From Server");
    }

对此有什么想法吗?

谢谢

我已经找到解决方案

@Autowired
private SimpMessagingTemplate template;


@RequestMapping(value = "/sendMessage")
public void sendMessage() throws Exception {
    this.template.convertAndSend("/topic/greetings", new HelloMessage(
            (int) Math.random(), "This is Send From Server"));
}

使用这个我们可以发送消息打开WebSocket。

谢谢