Spring integration Spring Mqtt集成:出站主题问题
嗨,我正在尝试使用spring集成来接收MQTT消息,处理它们并发布到另一个主题 以下是integration.xml文件:Spring integration Spring Mqtt集成:出站主题问题,spring-integration,mqtt,mosquitto,Spring Integration,Mqtt,Mosquitto,嗨,我正在尝试使用spring集成来接收MQTT消息,处理它们并发布到另一个主题 以下是integration.xml文件: <int-mqtt:outbound-channel-adapter id="mqtt-publish" client-id="spring-foo-1" client-factory="clientFactory" auto-startup="true" url="tcp://localhost:1883" defau
<int-mqtt:outbound-channel-adapter id="mqtt-publish"
client-id="spring-foo-1"
client-factory="clientFactory"
auto-startup="true"
url="tcp://localhost:1883"
default-qos="0"
default-retained="true"
default-topic="tweets/akki" />
<int-mqtt:message-driven-channel-adapter id="oneTopicAdapter"
client-id="spring-foo-2"
client-factory="clientFactory"
auto-startup="true"
url="tcp://localhost:1883"
topics="mqtt/publish"
/>
<int:service-activator input-channel="oneTopicAdapter" method="logMessages" ref="mqttLogger" output-channel="mqtt-publish"></int:service-activator>
<bean id="mqttLogger" class="hello.mqttReceiver" />
以下是我面临的问题:
路由到mqtt/publish,而不是mqtt/akki处理的_数据
不是发布的,而是多次发布的处理的_数据
AbstractMqttMessageHandler
首先查看头文件
:
String topic = (String) message.getHeaders().get(MqttHeaders.TOPIC);
Object mqttMessage = this.converter.fromMessage(message, Object.class);
if (topic == null && this.defaultTopic == null) {
throw new MessageHandlingException(message,
"No '" + MqttHeaders.TOPIC + "' header and no default topic defined");
}
当DefaultPahoMessageConverter
在消息到达时从MqttPahoMessageDrivenChannelAdapter
填充MqttHeaders.TOPIC
头时
在将消息发送到
之前,您应该考虑使用
,也可以使用标题充实器替换主题标题(将overwrite设置为true)。
String topic = (String) message.getHeaders().get(MqttHeaders.TOPIC);
Object mqttMessage = this.converter.fromMessage(message, Object.class);
if (topic == null && this.defaultTopic == null) {
throw new MessageHandlingException(message,
"No '" + MqttHeaders.TOPIC + "' header and no default topic defined");
}