spring-mvc,websockets 推送集成

Posted

技术标签:

【中文标题】spring-mvc,websockets 推送集成【英文标题】:spring-mvc, websockets push integration 【发布时间】:2014-03-31 21:44:25 【问题描述】:

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

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

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

GreetingController 实现 RunnableListener RunnableListener 有一个方法 public Greeting 问候语(HelloMessage 消息);

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

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

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

问候 锡

【问题讨论】:

【参考方案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。

【讨论】:

以上是关于spring-mvc,websockets 推送集成的主要内容,如果未能解决你的问题,请参考以下文章

(二)数据推送之websocket

websocket的消息推送只能固定在某一个页面吗?

小程序websocket推送消息Uint8Array/ArrayBuffer

SpringBoot基于WebSocket进行推送

Python Websocket消息推送---GoEasy

WebSocket与消息推送