小程序使用mqtt连接WebSocket调试工具可以正常连接,真机不行

发布于 6 年前作者 jinxiulan8150 次浏览最后编辑 6 年前来自 ask
  • 当前 Bug 的表现(可附上截图)

开发工具log

真机log

  • 预期表现

  • 复现路径

  • 提供一个最简复现 Demo

6 回复
qyin
qyin1 楼6 年前

mqtt.js 3.0.0版本,对微信小程序的支持有问题,首先看一下mqtt协议:

在微信开发者工具上是可以看到,请求头包含子协议,此时连接正常:

__
__

__
__

但是到了真机上,通过“真机调试模式”会发现缺少这个请求头,无法连接。

解决方案有两种:

  1. 第一种,通过nginx反向代理:proxy_set_header Sec-WebSocket-Protocol mqtt;

  2. 第二种,将mqtt.js版本降低到 2.18.8。

连接mqtt的端口可以任意,8044端口都可以用。并非其它回答说的一定要443端口,毫无依据。

折腾一天,尝试各种方法。如果回答对你有用,可以请我喝杯咖啡,哈哈 😄

chaozou
chaozou2 楼6 年前

我还是不能解决,麻烦可以加一下微信聊一下吗 K402216

qiangzou
qiangzou3 楼6 年前

最近在弄小程序 MQTT类的东西,  可以加下微信或者 QQ 交流一下吗

guiyingqin
guiyingqin4 楼6 年前

调试工具可以正常连接,真机不行

我之前也遇到过,我的解决方法是 在真机上把 “打开调试” 开关打开,就可以了;

panlei
panlei5 楼6 年前

我一直用这个:https://github.com/xuhongv/WeChatMiniEsp8266 (【新增支持阿里云物联网连接】实现微信小程序连接mqtt服务器,可控制esp8266智能硬件等需求。)

案列有:https://github.com/xuhongv/WCMiniColorSetForEsp8266

我建议大家先用阿里云物联网平台mqtt连接!

jing35
jing356 楼5 年前

微信官方人呢,没人回答一下吗😂