使用 spring 集成网关向不同主题发送消息
Sending messages to different topics using spring integration gateway
我正在尝试使用 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);
}
我的问题是:如果我想使用网关处理程序将消息发送到不同的主题,我该怎么做而不必为每个主题创建适配器?
谢谢。
希望我清楚地表达了我的问题并且代码格式正确。
您需要在消息中设置目标主题header。
这是一种方法...
void sendToMqtt(String data, @Header(MqttHeaders.TOPIC) String topic);
网关代理将 assemble 带有 header 的消息,然后由出站适配器使用。
我正在尝试使用 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);
}
我的问题是:如果我想使用网关处理程序将消息发送到不同的主题,我该怎么做而不必为每个主题创建适配器?
谢谢。
希望我清楚地表达了我的问题并且代码格式正确。
您需要在消息中设置目标主题header。
这是一种方法...
void sendToMqtt(String data, @Header(MqttHeaders.TOPIC) String topic);
网关代理将 assemble 带有 header 的消息,然后由出站适配器使用。