2015-05-05 5 views
1

Я пытаюсь читать сообщения с подпиской по теме через клиент Spring MQTT.Конфигурация абонента 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 клиента. Ex: MqttPahoMessageDrivenChannelAdapter

Могу ли я использовать MqttPahoMessageDrivenChannelAdapter в качестве компонента и передать «mqttInbound»?

Все входящие сообщения в «mqttInbound» перенаправляются на MqttPahoMessageDrivenChannelAdapter. Я могу сделать это?

Обновление: Могу ли я перенаправить входящие сообщения в компонент? Есть ли интерфейс, который я могу использовать?

Например:

<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

Извините, или вы неправильно поняли интеграцию с весной, или я пропустил что-либо из вашего вопроса.

<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> для вашей настройки, но outputChannel из MessageProducer требуется в любом случае.

+0

Я только что обновил вопрос. Кажется, я понятия не имею. Я проверил весенние документы, но никакого результата. Я думаю, что мне обязательно нужно некоторое знание о Spring-JMS, чтобы понять это. – user2172625