spring-mvc,websockets推送集成

时间:2014-03-31 21:44:26

标签: spring-mvc websocket spring-websocket

我已点击此链接http://spring.io/guides/gs/messaging-stomp-websocket/并启动并运行该应用。

我想要的远不止于此,我希望能够将数据推送回客户端而无需客户端发送任何内容。

所以我设置了一个长期运行的任务,其监听器类似于下面的

GreetingController实现了RunnableListener 并且RunnableListener有一个方法 公共问候语(HelloMessage消息);

该方法的实现是启动线程然后调用侦听器方法..

当发生这种情况时,我会在控制台上看到输出,但我在浏览器上看不到任何内容。

有没有人可以告诉我如何启动正在运行的任务,让服务器使用Spring而不是轮询(javascript中的setTimeout东西)将内容推送到浏览器中。

此致 锡

1 个答案:

答案 0 :(得分:1)

这个RunnableListener界面是什么? 什么是触发这项任务 - 是否定期安排?

一旦客户订阅了某个主题(此处为/topic/greetings),您就可以随时使用MessagingTemplate向该主题发送消息。例如,您可以安排此任务,并让它定期发送给定主题的消息:

@Service
public class GreetingService {

    private SimpMessagingTemplate template;

    @Autowired
    public GreetingService(SimpMessagingTemplate template) {
        this.template = template;
    }

    @Scheduled(fixedDelay=10000)
    public void greet() {
        this.template.convertAndSend("/topic/greetings", "Hello");
    }

}

查看reference documentation for more details