Spring MQTT订户配置

时间:2015-05-05 17:50:29

标签: spring spring-integration mqtt paho

我正在尝试通过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"/>

我已经看过下面的例子,但我不确定那是我正在寻找的。

<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"/>

1 个答案:

答案 0 :(得分:1)

很抱歉,或者您误解了Spring Integration,或者我错过了您的问题。

<mqtt:message-driven-channel-adapter>MqttPahoMessageDrivenChannelAdapter的高级组件:

  1. MqttNamespaceHandler

    this.registerBeanDefinitionParser("message-driven-channel-adapter",  new MqttMessageDrivenChannelAdapterParser());
    
  2. MqttMessageDrivenChannelAdapterParser

            BeanDefinitionBuilder builder = BeanDefinitionBuilder
                    .genericBeanDefinition(MqttPahoMessageDrivenChannelAdapter.class);
    
  3. 那么,将MqttPahoMessageDrivenChannelAdapter包裹到MqttPahoMessageDrivenChannelAdapter是什么意思?

    你有一些延期吗?因此,您必须为自定义声明常规<bean>,但无论如何都需要outputChannel MessageProducer