我正在尝试通过Spring MQTT客户端读取订阅的主题消息。
<mqtt:message-driven-channel-adapter id="mqttInbound"
client-id="mySpringServer"
url="tcp://localhost:1883"
topics="foo2015"
auto-startup="true"
client-factory="clientFactory"
channel="fileChannel"/>
我喜欢通过Spring MQTT客户端处理它们,而不是拥有“ fileChannel
”通道。
例如:MqttPahoMessageDrivenChannelAdapter
我可以使用 MqttPahoMessageDrivenChannelAdapter
作为bean并引用“mqttInbound
”吗?
所有收到的“ mqttInbound
”消息都会重定向到MqttPahoMessageDrivenChannelAdapter
。我可以这样做吗?
更新 我可以将传入的消息重定向到bean吗?我可以使用任何界面吗?
例如:
<mqtt:message-driven-channel-adapter ... channel="msgChannel" />
<bean id="msgChannel" class="org.channel.AnyMessageReader"/>
我已经看过下面的例子,但我不确定那是我正在寻找的。 p>
<int:channel id="channel_01" />
<int:service-activator id="serviceActivator" input-channel="channel_01" ref="msgService" method="setMessage" />
<bean id="msgService" class="org.channel.AnyMessageService"/>
答案 0 :(得分:1)
很抱歉,或者您误解了Spring Integration,或者我错过了您的问题。
<mqtt:message-driven-channel-adapter>
是MqttPahoMessageDrivenChannelAdapter
的高级组件:
MqttNamespaceHandler
this.registerBeanDefinitionParser("message-driven-channel-adapter", new MqttMessageDrivenChannelAdapterParser());
MqttMessageDrivenChannelAdapterParser
BeanDefinitionBuilder builder = BeanDefinitionBuilder
.genericBeanDefinition(MqttPahoMessageDrivenChannelAdapter.class);
那么,将MqttPahoMessageDrivenChannelAdapter
包裹到MqttPahoMessageDrivenChannelAdapter
是什么意思?
你有一些延期吗?因此,您必须为自定义声明常规<bean>
,但无论如何都需要outputChannel
MessageProducer
。