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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。