一尘不染

spring-mvc,websockets推送集成

spring-mvc

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

我想要的不仅仅是这些,我希望能够将数据推回客户端,而无需客户端发送任何东西。

因此,我使用类似于下面的监听器设置了一个长期运行的任务

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

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

发生这种情况时,我会在控制台上看到输出,但在浏览器上什么都看不到。

谁能告诉我如何启动一个正在运行的任务,并让服务器使用Spring而不是民意调查将内容推送到浏览器(javascript中的setTimeout东西?)。

关于锡


阅读 273

收藏
2020-06-01

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

}

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

2020-06-01