Spring integration 使用spring集成网关向不同主题发送消息

Spring integration 使用spring集成网关向不同主题发送消息,spring-integration,spring-integration-mqtt,Spring Integration,Spring Integration Mqtt,我尝试使用spring集成向代理发送mqtt消息,并且尝试使用网关接口 @Bean public MqttPahoClientFactory mqttClientFactory() { DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory(); //set the factory details return factory: } @Bean @ServiceActivator(

我尝试使用spring集成向代理发送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);
}
我的问题是:如果我想使用网关处理程序将消息发送到不同的主题,我将如何做到这一点而不必为每个主题创建适配器

谢谢


希望我的问题表述清楚,代码格式正确。

您需要在消息头中设置目标主题

这里有一个方法可以做到这一点

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

网关代理将把消息与报头组合在一起,然后由出站适配器使用。

这不提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。-它确实回答了这个问题,但我会补充一些词。这正是我想要的。我找到了@header(topic)注释,但我不知道如何使用它。你知道我在哪里也能找到春天的文档吗?我已经搜索了好几天了。
@Header
的用法很简单。MQTT出站通道适配器为
>defaultTopic—消息发送到的默认主题(如果未找到mqtt_主题标头,则使用)。
setDefaultTopic()
@GaryRussell的javadocs中,也请检查