Отправка сообщений на разные темы с помощью шлюза интеграции Spring - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь использовать Spring Integration для отправки сообщений mqtt брокеру, и я пытаюсь использовать интерфейс шлюза.

 @Bean
public MqttPahoClientFactory mqttClientFactory() {
    DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory();
    //set the factory details
    return factory:
}

@Bean
@ServiceActivator(inputChannel = "mqttOutboundChannel")
public MessageHandler mqttOutbound() {
    MqttPahoMessageHandler messageHandler =
            new MqttPahoMessageHandler("randomString", mqttClientFactory());
    //set handler details
    messageHandler.setDefaultTopic(topic);
    return messageHandler;
}

@Bean
public MessageChannel mqttOutboundChannel() {
    return new DirectChannel();
}
@MessagingGateway(defaultRequestChannel = "mqttOutboundChannel")
private interface MyGateway {
    void sendToMqtt(String data);
}

Мой вопрос: если я хочу использовать обработчик шлюза для отправкисообщения на разные темы, как бы мне это сделать без необходимости создания адаптера для каждой темы?

Спасибо.

Надеюсь, я сформулировал свой вопрос четко и код правильно отформатирован.

1 Ответ

0 голосов
/ 19 февраля 2019

Вам нужно установить целевую тему в заголовке сообщения.

Вот один из способов сделать это ...

void sendToMqtt(String data, @Header(MqttHeaders.TOPIC) String topic);

Прокси шлюза будет собирать сообщение с заголовком, который затем используется исходящим адаптером.

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