如何用代码实现发送MQTT消息
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,MQTT协议因低延迟、效率高在工业物联网领域使用的频率特别高,前面两篇文档分别对MQTT内容和MQTT服务器做了简单介绍,今天本文从实战的角度阐述如何用代码实现发送MQTT消息。1.引入相关的依赖or
千家信息网最后更新 2024年11月26日如何用代码实现发送MQTT消息
MQTT协议因低延迟、效率高在工业物联网领域使用的频率特别高,前面两篇文档分别对MQTT内容和MQTT服务器做了简单介绍,今天本文从实战的角度阐述如何用代码实现发送MQTT消息。
1.引入相关的依赖
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-integration org.springframework.integration spring-integration-mqtt
2.在application.yml配置MQTT服务器信息
server: port: 9090mqtt: host: tcp://127.0.0.1:1883 clientinid: mqttinId clientoutid: mqttoutid topic: virus qoslevel: 1 #MQTT 认证 username: xxx password: yyy # 10s timeout: 10000 #20s keepalive: 20
3.配置MQTT消息推送配置
@Configuration@IntegrationComponentScanpublic class MqttSenderConfig { @Value("${mqtt.username}") private String username; @Value("${mqtt.password}") private String password; @Value("${mqtt.host}") private String hostUrl; @Value("${mqtt.clientinid}") private String clientId; @Value("${mqtt.topic}") private String defaultTopic; @Value("${mqtt.timeout}") private int completionTimeout; @Bean public MqttConnectOptions getMqttConnectOptions(){ MqttConnectOptions mqttConnectOptions=new MqttConnectOptions(); mqttConnectOptions.setCleanSession(true); mqttConnectOptions.setConnectionTimeout(10); mqttConnectOptions.setKeepAliveInterval(90); mqttConnectOptions.setAutomaticReconnect(true); mqttConnectOptions.setUserName(username); mqttConnectOptions.setPassword(password.toCharArray()); mqttConnectOptions.setServerURIs(new String[]{hostUrl}); mqttConnectOptions.setKeepAliveInterval(2); return mqttConnectOptions; } @Bean public MqttPahoClientFactory mqttClientFactory() { DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory(); factory.setConnectionOptions(getMqttConnectOptions()); return factory; } @Bean @ServiceActivator(inputChannel = "mqttOutboundChannel") public MessageHandler mqttOutbound() { MqttPahoMessageHandler messageHandler = new MqttPahoMessageHandler(clientId, mqttClientFactory()); messageHandler.setAsync(true); messageHandler.setDefaultTopic(defaultTopic); return messageHandler; } @Bean public MessageChannel mqttOutboundChannel() { return new DirectChannel(); }}
4.MQTT消息推送接口
@MessagingGateway(defaultRequestChannel = "mqttOutboundChannel")public interface MqttGateway { void sendToMqtt(String data, @Header(MqttHeaders.TOPIC) String topic);}
5.MQTT消息推送API
@RestControllerpublic class MessageController { @Autowired MqttGateway mqttGateway; @RequestMapping("/sendMqttMessage") public String sendMqttMessage(String message, String topic) { mqttGateway.sendToMqtt(message, topic); return "ok"; }}
测试
接下来就可以在POSTMAN中进行测试了,输入消息内容和主题,就可以在相应的频道发送消息了。如果使用其它的消息客户端进行测试的话,可以接受到消息
消息
推送
测试
配置
内容
服务器
服务
代码
接下来
主题
信息
实战
客户
客户端
工业
接口
效率
文档
角度
领域
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机网络技术系统集成专业
nas服务器建设
金山区营销软件开发制造价格
帝国神话自建服务器爵位
宏武互联网科技坊前分公司
腾讯云服务器网速如何跑满
mat4软件开发商
如何远程访问自己的电脑服务器
软件开发如何能接到私活
fifaut数据库
如何在数据库中创建数据库用户
河南省网络安全保卫总队位置
广州哪里有做软件开发
幼儿园网络安全教学活动
数据库高校活动策划
网络安全的战队名称
行装网络技术有限公司官网
天际股份历史交易数据库
高青管理erp软件开发
数据库切换本地连接字符串
网络安全板报设计图案大全贴纸
计算机网络安全研究背景
传统数据库培训
广元网络技术要多少钱
网络安全在我国的研究概况
如何远程访问自己的电脑服务器
青浦区综合网络技术厂家直销
服务器一直不关机可以用多久
网络安全与管理研究生就业
网络数据库技术是指哪些