1

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

fileChannel我喜欢通过 Spring MQTT 客户端来处理它们,而不是拥有一个“ ”通道。前任: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"/>
4

1 回答 1

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);
    

那么,包装MqttPahoMessageDrivenChannelAdapter到 的意义MqttPahoMessageDrivenChannelAdapter何在?

你有一些扩展吗?因此,您必须为您的自定义声明常规<bean>,但无论如何都是必需的outputChannelMessageProducer

于 2015-05-05T18:28:56.617 回答