使用stomp使用spring boot在Scheduler websocket中推送动态消息

时间:2018-06-03 23:14:52

标签: spring-boot spring-websocket java-websocket

我尝试使用springboot(websocket)创建一个聊天机器人,我想知道是否可以在Scheduler中推送动态消息,我需要一些帮助,我不能把它弄出来。 我想在调度程序中推送消息配置我该怎么做:

No such file or directory

在sendAdhocMessages方法中,我想传递一个将在html页面中显示的消息。在官方文档中,不可能将参数传递给@Scheduled注释的方法,是否有任何方法可以做到这一点?

@EnableScheduling
@Configuration
public class SchedulerConfig {

    @Autowired
    SimpMessagingTemplate template;

    @Scheduled(fixedDelay = 3000)
    public void sendAdhocMessages() {
        template.convertAndSend("/topic/user", new UserResponse("Fixed Delay Scheduler"));
    }
}

1 个答案:

答案 0 :(得分:0)

official documentation包含提示,如何将值传递给预定方法。也许你可以提供一个充当消息提供者的bean。在调度程序类中,您可以自动装配消息提供程序并请求消息。 一个简短的代码示例:

@Componet
public class MessageProvider {
    private String message;

    // getter and setter ...
}

在调度程序中,您可以使用消息提供程序,如下所示:

@EnableScheduling
@Configuration
public class SchedulerConfig {

    @Autowired
    SimpMessagingTemplate template;

    @Autowired
    MessageProvider messageProvider;

    @Scheduled(fixedDelay = 3000)
    public void sendAdhocMessages() {
        String currentMessage = messageProvider.getMessage();
        template.convertAndSend("/topic/user", new UserResponse(currentMessage));
    }
}