如何用代码实现发送MQTT消息
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,MQTT协议因低延迟、效率高在工业物联网领域使用的频率特别高,前面两篇文档分别对MQTT内容和MQTT服务器做了简单介绍,今天本文从实战的角度阐述如何用代码实现发送MQTT消息。1.引入相关的依赖or
千家信息网最后更新 2026年11月01日如何用代码实现发送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安全错误
数据库的锁怎样保障安全
保险科技 互联网保险
广州万易互联网科技有限公司
中关村互联网科技集团
互联网科技行业发展
互联网 科技创新
奇酷互联网络科技
九亚互联网科技
科技创新互联网企业
互联网科技logo
互联网科技博客
新华互联网科技校企合作
华中科技有哪些互联网大佬
西藏七维空间互联网科技有限公司
中国科技互联网公司收入
互联网科技创新服务
来此购互联网科技有限公司
语蝶互联网科技有限公司
亳州好赞互联网科技有限公司
互联网公司高科技产品
国产互联网科技公司
手冲咖啡和咖啡机区别
云电互联网科技
科技伦理 互联网公司
中国最先进互联网科技公司
互联网科技有哪些公司
洛阳昕诺飞互联网科技有限公司
长沙茂晟互联网科技有限公司
广东鹅鹅鹅互联网科技有限公司
万物互联网智能科技
互联网领先科技成果宣传视频