当前位置: 首页 > ds >正文

【MQTT】

  1. 实体
public class MqttMessagePayload {private String traceId;private String mdcSn;// Getters, Setters, toString...
}
  1. 配置
@ConfigurationProperties(prefix = "sdk.mqtt")
public class MqttProperties {private boolean enabled = false;private String brokerUrl;private String clientId;private String topic;// Getters and Setters
}
  • 业务使用
sdk:mqtt:enabled: truebroker-url: tcp://localhost:1883client-id: my-client-idtopic: my-topic
  1. 配置类
@Configuration
@ConditionalOnProperty(name = "sdk.mqtt.enabled", havingValue = "true")
@EnableConfigurationProperties(MqttProperties.class)
public class MqttAutoConfiguration {@Beanpublic MqttOutboundChannelAdapter mqttOutbound(MqttProperties properties) {// 省略 connectionOptions 配置,可加用户名密码等MqttPahoClientFactory factory = new DefaultMqttPahoClientFactory();MqttPahoMessageHandler messageHandler = new MqttPahoMessageHandler(properties.getClientId(), factory);messageHandler.setAsync(true);messageHandler.setDefaultTopic(properties.getTopic());return new MqttOutboundChannelAdapter(messageHandler);}
}
  1. service
public class MqttMessageSender {private final MessageChannel mqttOutboundChannel;public MqttMessageSender(MessageChannel mqttOutboundChannel) {this.mqttOutboundChannel = mqttOutboundChannel;}public void sendMessage(MqttMessagePayload payload) {try {GenericMessage<String> message = new GenericMessage<>(new ObjectMapper().writeValueAsString(payload));mqttOutboundChannel.send(message);} catch (Exception e) {throw new MqttSendException("MQTT消息发送失败", e);}}
}
  1. SDK集成
sdk.mqtt.enabled: true
@Autowired(required = false)
private MqttMessageSender mqttMessageSender;public void someBusinessLogic() {if (mqttMessageSender != null) {mqttMessageSender.sendMessage(new MqttMessagePayload("trace123", "mdc456"));}
}
http://www.xdnf.cn/news/9899.html

相关文章:

  • NUMA 架构科普:双路 CPU 系统是如何构建的?
  • 快速上手shell条件测试
  • Practice 2025.5.29 —— 二叉树进阶面试题(1)
  • 聊聊 Metasploit 免杀
  • 数字人引领政务新风尚:智能设备助力政务服务
  • OpenCV计算机视觉实战(9)——阈值化技术详解
  • 【仿生系统】qwen的仿生机器人解决方案
  • AI产品风向标:从「工具属性」到「认知引擎」的架构跃迁​
  • 国芯思辰| 霍尔电流传感器AH811为蓄电池负载检测系统安全护航
  • Java 实现下载指定minio目录下的所有内容到远程机器
  • ssm学习笔记(尚硅谷) day1
  • 生成式人工智能:重构软件开发的范式革命与未来生态
  • 预处理,咕咕咕
  • Cesium 展示——获取鼠标移动、点击位置的几种方法
  • 第四章、自平衡控制
  • 【Ubuntu远程桌面】
  • .NET WinForm图像识别二维码/条形码
  • 从零开始的数据结构教程(六) 贪心算法
  • 超声波换能器 换能原理
  • 「卫星百科」“绿色守卫”高分六号
  • MVCC 原理与并发控制实现
  • 【Pandas】pandas DataFrame equals
  • STP配置
  • 基于Java,SpringBoot,Vue,UniAPP医院预约挂号买药就诊病例微信小程序系统设计
  • 代码随想录打卡|Day50 图论(拓扑排序精讲 、dijkstra(朴素版)精讲 )
  • Java中如何枚举正则表达式捕获组的名字
  • RabbitMQ项目实战
  • 【机器学习基础】机器学习入门核心算法:随机森林(Random Forest)
  • 华为OD机试真题——AI面板识别(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 高效开发,升级软件,硬件也要专业