🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
SimpMessagingTemplate 模板类与`@MessageMapping`和`@SendTo`不同的是:`@MessageMapping`和`@SendTo`想要往前端推送数据,则前端必须先调用`stomp.send`方法请求,再调用`stomp.subscribe`后,后端才能推送数据到前端。而 SimpMessagingTemplate 对于调用`stomp.send`是可有可无的,这个可以用来做定时任务。 <br/> 步骤如下: **1. 启动类上标注注解`@EnableScheduling`开启定时服务** ```java @EnableScheduling @SpringBootApplication public class Socket03Application { public static void main(String[] args) { SpringApplication.run(Socket03Application.class, args); } } ``` **2. 在方法上标注注解`@Scheduled`定时推送消息到前端** ```java @Component public class SheduledTask { @Autowired private SimpMessagingTemplate messagingTemplate; /** * 每隔3s调用一下该方法 */ @Scheduled(cron = "0/3 * * * * ?") public void chatInfo5() { messagingTemplate.convertAndSend("/topic/v5/scheduled", new Date().toString()); } } ``` **3. 前端会定时收到消息** ```js client.subscribe('/topic/v5/scheduled', (res) => { console.info(res.body) //Sat May 21 19:15:30 CST 2022 //Sat May 21 19:15:33 CST 2022 //... }) ```