小程序使用mqtt连接WebSocket调试工具可以正常连接,真机不行
- 当前 Bug 的表现(可附上截图)
开发工具log
真机log
-
预期表现
-
复现路径
-
提供一个最简复现 Demo
开发工具log
真机log
预期表现
复现路径
提供一个最简复现 Demo
mqtt.js 3.0.0版本,对微信小程序的支持有问题,首先看一下mqtt协议:
在微信开发者工具上是可以看到,请求头包含子协议,此时连接正常:
__
__
__
__
但是到了真机上,通过“真机调试模式”会发现缺少这个请求头,无法连接。
解决方案有两种:
第一种,通过nginx反向代理:proxy_set_header Sec-WebSocket-Protocol mqtt;
第二种,将mqtt.js版本降低到 2.18.8。
连接mqtt的端口可以任意,8044端口都可以用。并非其它回答说的一定要443端口,毫无依据。
折腾一天,尝试各种方法。如果回答对你有用,可以请我喝杯咖啡,哈哈 😄
我一直用这个:https://github.com/xuhongv/WeChatMiniEsp8266 (【新增支持阿里云物联网连接】实现微信小程序连接mqtt服务器,可控制esp8266智能硬件等需求。)
案列有:https://github.com/xuhongv/WCMiniColorSetForEsp8266
我建议大家先用阿里云物联网平台mqtt连接!