+-
Spring MQTT JAva Config示例问题
在哪里可以找到如何使用MQTT JAva Config的示例?

这不适合我:http://docs.spring.io/spring-integration/reference/html/mqtt.html

最佳答案
我很高兴你找到了解决方案.

我创建了一个示例应用程序,它使用Java DSL从stdin读取,发送到MQTT,接收和记录.

以下是相关内容:

// publisher

@Bean
public IntegrationFlow mqttOutFlow() {
    return IntegrationFlows.from(CharacterStreamReadingMessageSource.stdin(),
                    e -> e.poller(Pollers.fixedDelay(1000)))
            .transform(p -> p + " sent to MQTT")
            .handle(mqttOutbound())
            .get();
}

@Bean
public MessageHandler mqttOutbound() {
    MqttPahoMessageHandler messageHandler = new MqttPahoMessageHandler("siSamplePublisher", mqttClientFactory());
    messageHandler.setAsync(true);
    messageHandler.setDefaultTopic("siSampleTopic");
    return messageHandler;
}

// consumer

@Bean
public IntegrationFlow mqttInFlow() {
    return IntegrationFlows.from(mqttInbound())
            .transform(p -> p + ", received from MQTT")
            .handle(logger())
            .get();
}

private LoggingHandler logger() {
    LoggingHandler loggingHandler = new LoggingHandler("INFO");
    loggingHandler.setLoggerName("siSample");
    return loggingHandler;
}

@Bean
public MessageProducerSupport mqttInbound() {
    MqttPahoMessageDrivenChannelAdapter adapter = new MqttPahoMessageDrivenChannelAdapter("siSampleConsumer",
            mqttClientFactory(), "siSampleTopic");
    adapter.setCompletionTimeout(5000);
    adapter.setConverter(new DefaultPahoMessageConverter());
    adapter.setQos(1);
    return adapter;
}

.

foo
14:40:56.770 [MQTT Call: siSampleConsumer] INFO  siSample - foo sent to MQTT, received from MQTT

编辑

带注释的官方Spring Integration MQTT示例& DSL配置位于:https://github.com/spring-projects/spring-integration-samples/tree/master/basic/mqtt

点击查看更多相关文章

转载注明原文:Spring MQTT JAva Config示例问题 - 乐贴网