Как использовать Spring Integration для получения сообщения на уровне сервиса? - PullRequest
0 голосов
/ 25 марта 2020

Я хотел бы задать вопросы о весенней интеграции с 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, но я не знаю, как его использовать. Я хочу иметь возможность обрабатывать эти сообщения на уровне службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...