2

我已经按照这个链接http://spring.io/guides/gs/messaging-stomp-websocket/启动并运行了该应用程序。

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

所以我设置了一个长时间运行的任务,它带有一个类似于下面的监听器

GreetingController 实现了 RunnableListener 并且 RunnableListener 有一个方法 public Greeting greeting(HelloMessage message);

方法的实现是启动一个线程,然后调用监听方法。。

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

谁能告诉我如何启动正在运行的任务并让服务器使用 Spring 而不是 poll 将内容推送到浏览器(javascript 中的 setTimeout 内容?)

问候锡

4

1 回答 1

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");
    }

}

查看参考文档以获取更多详细信息

于 2014-04-01T12:37:45.217 回答