Я хотел бы задать вопросы о весенней интеграции с MQTT. После прочтения документов на официальном сайте
я успешно получил сообщение от брокера MQTT, например:
@SpringBootApplication
public class MqttJavaApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(MqttJavaApplication.class)
.web(false)
.run(args);
}
@Bean
public MessageChannel mqttInputChannel() {
return new DirectChannel();
}
@Bean
public MessageProducer inbound() {
MqttPahoMessageDrivenChannelAdapter adapter =
new MqttPahoMessageDrivenChannelAdapter("tcp://localhost:1883", "testClient",
"topic1", "topic2");
adapter.setCompletionTimeout(5000);
adapter.setConverter(new DefaultPahoMessageConverter());
adapter.setQos(1);
adapter.setOutputChannel(mqttInputChannel());
return adapter;
}
@Bean
@ServiceActivator(inputChannel = "mqttInputChannel")
public MessageHandler handler() {
return new MessageHandler() {
@Override
public void handleMessage(Message<?> message) throws MessagingException {
System.out.println(message.getPayload());
}
};
}
}
Но это файл конфигурации. Я не думаю, что это хорошая идея для обработки сообщений в файле конфигурации, но я нашел много других MessageHandlers, таких как MqttPahoMessageHandler, но я не знаю, как его использовать. Я хочу иметь возможность обрабатывать эти сообщения на уровне службы.