You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.7 KiB
5.7 KiB
腾讯云MQTT模块SDK更新完成说明
更新概述
已根据您提供的腾讯云IoT Hub官方SDK代码,将MQTT模块从Paho MQTT客户端库迁移到腾讯云官方SDK hub-device-android:3.3.23
,确保与腾讯云IoT平台的完全兼容性。
🔄 主要变更
1. 依赖库更新
变更前:
implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5'
implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
变更后:
implementation 'com.tencent.iot.hub:hub-device-android:3.3.23'
2. 核心连接管理器变更
变更前: 使用 MqttAsyncClient
变更后: 使用 TXGatewayConnection
(腾讯云官方连接管理器)
3. 回调机制更新
变更前: 实现 MqttCallback
和 IMqttActionListener
变更后: 继承 TXMqttActionCallBack
和 TXMqttLogCallBack
🏗️ 技术架构优化
SDK集成架构
MqttManager
├── TXGatewayConnection (腾讯云官方连接管理器)
├── TXMqttActionCallBack (连接状态回调)
├── TXMqttLogCallBack (日志回调)
└── 自动重连机制 (基于SDK内置功能增强)
认证方式优化
- PSK密钥认证: 使用腾讯云IoT平台标准PSK认证
- 自动SSL配置: SDK自动处理SSL证书配置
- 默认服务器地址: 使用腾讯云IoT默认MQTT服务器地址
✨ 新增功能特性
1. 官方SDK特性
- 网关连接支持: 支持腾讯云IoT网关设备连接
- 断线缓冲: 内置断线消息缓冲机制
- 持久化会话: 支持clean session控制
- OTA升级支持: 预留固件升级接口
2. 增强的日志系统
- 分级日志: 支持DEBUG、INFO、WARN、ERROR等日志级别
- 日志上传: 支持将日志上传到腾讯云平台
- 本地日志: 可选的本地日志保存功能
3. 连接配置优化
// 连接参数优化
KEEP_ALIVE_INTERVAL = 120; // 心跳间隔提升到120秒
CONNECTION_TIMEOUT = 10; // 连接超时优化为10秒
QOS = TXMqttConstants.QOS1; // 使用SDK常量确保兼容性
📋 功能保持一致性
已验证的现有功能
✅ 自动连接: 初始化后自动连接腾讯云IoT平台 ✅ 自动重连: 渐进式延迟重连机制(最多5次) ✅ 健康检查: 30秒周期性连接状态检查 ✅ 门闸控制: 接收MQTT命令自动执行AB门开门 ✅ 设备重启: 处理远程重启命令 ✅ 信息上报: 响应日志查询并上报设备信息 ✅ 状态集成: MQTT状态显示在网络详情弹窗中
消息格式兼容性
完全兼容原有的uniapp消息格式:
- 门闸控制:
{"gate": "..."}
- 设备重启:
{"info": "...reboot-pad..."}
- 日志查询:
{"info": "...get_log_level..."}
🔧 配置参数更新
MQTT连接参数
参数 | 更新前 | 更新后 | 说明 |
---|---|---|---|
BROKER_URL | ssl://iotcloud-mqtt.gz.tencentcloudapi.com:8883 | null | 使用SDK默认地址 |
KEEP_ALIVE_INTERVAL | 60秒 | 120秒 | 优化心跳间隔 |
CONNECTION_TIMEOUT | 30秒 | 10秒 | 优化连接超时 |
QOS | 1 | TXMqttConstants.QOS1 | 使用SDK常量 |
认证配置
- 产品ID: WZX68L5I75(保持不变)
- 设备密钥: 7udrYcfTVThbzdMlLT9fHQ==(保持不变)
- 产品密钥: qr3rximCZnT6ZU0NsAAiTC7O(保持不变)
🚀 性能与稳定性提升
1. 连接稳定性
- 官方SDK优化: 腾讯云官方优化的连接算法
- 更好的网络适应性: 对弱网环境的改善支持
- 断线恢复: 更快的断线检测和恢复机制
2. 消息可靠性
- QoS保证: 更可靠的消息传输质量保证
- 持久化缓冲: 断线期间消息自动缓存
- 重传机制: SDK内置的消息重传机制
3. 资源优化
- 内存管理: SDK级别的内存优化
- 线程池: 优化的线程资源管理
- 电量消耗: 更节能的连接保持机制
📊 监控与调试
日志监控
新增日志标签:
TXGatewayConnection
: 腾讯云连接日志TXMqttActionCallBack
: 连接状态变化日志MqttManager
: 应用层MQTT管理日志
调试功能
- SDK日志: 可开启腾讯云SDK详细日志
- 连接诊断: 内置的连接状态诊断功能
- 性能监控: SDK级别的性能指标监控
🔍 测试与验证
已完成的测试
- 连接测试: 验证与腾讯云IoT平台的连接稳定性
- 消息测试: 验证门闸控制命令的正确处理
- 重连测试: 验证网络断线后的自动重连功能
- 状态测试: 验证MQTT状态在网络详情中的正确显示
建议的后续测试
- 长期稳定性测试: 24小时连续运行测试
- 弱网环境测试: 模拟网络不稳定环境下的表现
- 并发消息测试: 高频消息接收处理能力测试
- 电量消耗测试: 长期运行的电量消耗评估
📋 升级检查清单
- ✅ 更新build.gradle依赖库
- ✅ 重写MqttManager核心类
- ✅ 更新MqttManagerUsageExample示例
- ✅ 验证代码编译正确性
- ✅ 保持现有功能接口不变
- ✅ 确保网络状态集成正常
- ✅ 验证门闸控制功能正常
- ✅ 更新项目文档记录
🎯 总结
本次更新成功将MQTT模块迁移到腾讯云IoT Hub官方SDK,带来了以下主要优势:
- 官方支持: 使用腾讯云官方SDK,确保长期支持和兼容性
- 功能增强: 获得官方SDK的全部高级功能
- 性能优化: 享受腾讯云团队的性能优化成果
- 稳定性提升: 更稳定的连接管理和消息处理
- 向前兼容: 保持了所有现有功能的完整性
该更新完全向后兼容,不会影响现有的业务逻辑,同时为未来的功能扩展提供了更强大的基础支持。