使用同一套基于uniapp构建的微信小程序代码,在发布后, 发现Android手机 微信小程序功能使用均正常, IOS手机 微信小程序 功能无法使用,100%异常, 很抓狂
问题概述
使用同一套基于uniapp构建的代码, 在测试环境一切正常, 但发布至正式环境后:
- Android手机 微信小程序 功能均可以正常使用
- IOS手机 微信小程序 部分功能不能使用,通过真机调试工具发现:
MQTT连接失败
详细描述
两个环境所使用的MQTT url分别是:
- 测试: wss://dev.iot.com:8084
- 正式: wss://prod.iot.com:443
排查
- 代码自查 => 无异常
- 动作: 将MQTT连接部分, 强制修改为 正式环境地址(wss://prod.iot.com:443)
- 交叉验证 => 无异常
- 动作:
- 搜寻不同的IOS手机验证, 均无法使用MQTT
- 使用不同的Android手机验证, 均能正常使用MQTT
- 动作:
查原理
- 参考资料:
- 使用微信小程序连接到 MQTT 云服务: zhuanlan.zhihu.com/p/406581345
搜索资料
因为微信小程序是不支持MQTT协议的, 最终是通过websocket服务器来实现mqtt协议, 因此, 我们在检索问题时, 可以考虑搜索 微信小程序 IOS 无法连接 ws
检测域名
第三方工具检测地址: cloud.tencent.com/product/too...
初步排查结果
- 经排查确认: 正式服务器证书配置存在问题, 需要修复处理!
可能的解决办法
升级服务器的配置: cloud.tencent.com/document/pr... 根据里面的指南修改配置
配置完了,再次检测,支持TLS1.2。问题解决
相关资料
- 域名服务检测工具: cloud.tencent.com/product/too...
- 使用微信小程序连接到 MQTT 云服务: zhuanlan.zhihu.com/p/406581345