вставить динамическое сообщение в веб-сокет планировщика с помощью весенней загрузки с помощью Stomp - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь создать чат-бота, используя springboot (websocket), я хочу знать, возможно ли выдать динамическое сообщение в планировщике, и мне нужна помощь, я не могу ее разгадать.Я хочу выдвинуть сообщение в планировщике. Настроить, как я могу это сделать:

@EnableScheduling
@Configuration
public class SchedulerConfig {

    @Autowired
    SimpMessagingTemplate template;

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

в методе sendAdhocMessages. Я хочу передать сообщение, которое будет отображаться на странице html.в Официальном документе невозможно передать параметр методу, аннотированному @Scheduled, есть ли способ сделать это?

                            Thanks very much, and i apologize for my bad english

1 Ответ

0 голосов
/ 04 июня 2018

Официальная документация содержит подсказку, как можно передавать значения запланированному методу.Может быть, вы могли бы предоставить компонент, который действует как поставщик сообщений.В классе планировщика вы автоматически связываете провайдера сообщений и запрашиваете сообщения.Пример краткого кода:

@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));
    }
}
...