如何从正常请求调用中调用@SendTo,即@RequestMapping

时间:2015-07-24 10:47:21

标签: java spring-mvc websocket spring-websocket java-websocket

我使用Spring MVC实现了Web Socket,它对我来说很好用,即从一个浏览器到另一个浏览器工作,这个浏览器可以使用这个代码打开。

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

任何人都可以帮助我从正常的api控制器调用@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");
    }

对此有何想法?

由于

1 个答案:

答案 0 :(得分:17)

我找到了解决方法

@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。

由于