springboot集成mqtt的实践开发
序
MQTT(MessageQueuingTelemetryTransport)是基于二进制消息的发布/订阅编程模式的消息协议,非常适合需要低功耗和网络带宽有限的IoT场景。这里简单介绍一下如何在springboot中集成。
maven
org.springframework.boot spring-boot-starter-integration org.springframework.integration spring-integration-stream org.springframework.integration spring-integration-mqtt
配置clientfactory
@Bean publicMqttPahoClientFactorymqttClientFactory(){ DefaultMqttPahoClientFactoryfactory=newDefaultMqttPahoClientFactory(); factory.setServerURIs("tcp://demo:1883"); //factory.setUserName("guest"); //factory.setPassword("guest"); returnfactory; }
配置consumer
@Bean publicIntegrationFlowmqttInFlow(){ returnIntegrationFlows.from(mqttInbound()) .transform(p->p+",receivedfromMQTT") .handle(logger()) .get(); } privateLoggingHandlerlogger(){ LoggingHandlerloggingHandler=newLoggingHandler("INFO"); loggingHandler.setLoggerName("siSample"); returnloggingHandler; } @Bean publicMessageProducerSupportmqttInbound(){ MqttPahoMessageDrivenChannelAdapteradapter=newMqttPahoMessageDrivenChannelAdapter("siSampleConsumer", mqttClientFactory(),"siSampleTopic"); adapter.setCompletionTimeout(5000); adapter.setConverter(newDefaultPahoMessageConverter()); adapter.setQos(1); returnadapter; }
配置producer
@Bean publicIntegrationFlowmqttOutFlow(){ //consoleinput //returnIntegrationFlows.from(CharacterStreamReadingMessageSource.stdin(), //e->e.poller(Pollers.fixedDelay(1000))) //.transform(p->p+"senttoMQTT") //.handle(mqttOutbound()) //.get(); returnIntegrationFlows.from(outChannel()) .handle(mqttOutbound()) .get(); } @Bean publicMessageChanneloutChannel(){ returnnewDirectChannel(); } @Bean publicMessageHandlermqttOutbound(){ MqttPahoMessageHandlermessageHandler=newMqttPahoMessageHandler("siSamplePublisher",mqttClientFactory()); messageHandler.setAsync(true); messageHandler.setDefaultTopic("siSampleTopic"); returnmessageHandler; }
配置MessagingGateway
@MessagingGateway(defaultRequestChannel="outChannel") publicinterfaceMsgWriter{ voidwrite(Stringnote); }
这样就大功告成了
doc
spring-integration-mqtt
spring-integration-samples-mqtt
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。