收藏
回答

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

框架类型 问题类型 操作系统版本 手机型号 微信版本
小程序 Bug iOS12 iPhone 8 plus 7.0.3

- 当前 Bug 的表现(可附上截图)

开发工具log


真机log



- 预期表现


- 复现路径


- 提供一个最简复现 Demo


最后一次编辑于  2019-03-11
回答关注问题邀请回答
收藏

9 个回答

  • 小亦
    小亦
    2020-06-23

    按前面大佬说的, 我用最新的mqtt.js 手机上就好了(https://unpkg.com/mqtt@4.1.0/dist/mqtt.min.js

    2020-06-23
    有用 16
    回复 14
    • 杨晓波
      杨晓波
      2020-06-24
      这个有用!更新了就好了。
      2020-06-24
      回复
    • 树上有云
      树上有云
      2020-06-30
      确实有用!
      2020-06-30
      1
      回复
    • 盼盼
      盼盼
      2020-09-01
      谢谢大佬,这个真的有用!
      2020-09-01
      回复
    • Yoohhal
      Yoohhal
      2021-05-17
      困扰了很久,真的有用!
      2021-05-17
      回复
    • ( ̄へ ̄)
      ( ̄へ ̄)
      2022-04-22
      有用有用
      2022-04-22
      回复
    查看更多(9)
  • ☆大左
    ☆大左
    2019-07-09

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



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



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


    解决方案有两种:

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

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


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


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

    2019-07-09
    有用 7
    回复 5
    • 叶儿🍂
      叶儿🍂
      2020-03-09
      mqtt.js 2.18.8 有下载的地址吗?
      2020-03-09
      回复
    • LLLLL
      LLLLL
      2020-03-12
      nginx反向代理了还是不行啊,在H5都可以,在小程序调试的时候就一直报VM528 WAService.js:1 Uncaught TypeError: s is not a constructor这个错误
      2020-03-12
      回复
    • 无名氏
      无名氏
      2020-05-30
      你好,我试着用了下低版本的2.18.8的mqtt版本,在真机调试的时候,确实有了那个请求头(图1),但是,调试窗口却一直出错(图2)


      接着我又用回了高版本的mqtt,真机调试的时候,就没有那个请求头了(图3),但是却不报错了(图4)


      最后,上传体验版本,不管高版本还是低版本,两个体验版都连接不上服务器,消息都发不出去,也都接收不到消息
      2020-05-30
      回复
    • Lindrang
      Lindrang
      2020-12-15回复无名氏
      请问这个后来怎么解决的
      2020-12-15
      回复
    • F
      F
      2023-04-20回复侯杰
      2.18.8亲测有用,4.1.0及以上无用,IOS,此前开发者工具可连,IOS连不上,换了个mqtt.js库神奇连上,非常感谢侯杰大佬~
      2023-04-20
      回复
  • 半顆心臟
    半顆心臟
    2019-09-10

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

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

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

    2019-09-10
    有用 1
    回复 12
    • 高飞依旧
      高飞依旧
      2019-10-03
      你好,看过您的视频博客和github, 请问小程序后台socket合法域名是不是要配置:wss://pk.iot-as-mqtt.cn-shanghai.aliyuncs.com:443  ? 还是必须用productkey的域名?
      2019-10-03
      回复
    • 半顆心臟
      半顆心臟
      2019-10-06回复高飞依旧
      要用完整的,就是你 微信小程序访问的那个域名
      2019-10-06
      回复
    • 丶期_望℡
      丶期_望℡
      2019-11-08回复半顆心臟
      你好,我是使用ip连接的,请问怎么配置
      2019-11-08
      回复
    • 半顆心臟
      半顆心臟
      2019-11-09回复丶期_望℡
      不要用ip连接。上架或者真机调试可能连接失败!如果你没mqtt服务器搭建基础,你用百度天工mqtt或者阿里云物联网服务器连接;
      2019-11-09
      回复
    • 丶期_望℡
      丶期_望℡
      2019-11-09回复半顆心臟
      好滴,谢谢,可能就是用IP连接的问题
      2019-11-09
      回复
    查看更多(7)
  • m(._.)m
    m(._.)m
    2022-03-02

    https://docs.emqx.com/zh/enterprise/v4.4/development/wechat-miniprogram.html#%E8%AF%A6%E7%BB%86%E6%AD%A5%E9%AA%A4

    2022-03-02
    有用
    回复
  • 胡广宇
    胡广宇
    2020-10-11

    笑死人了,这是微信小程序安卓真机解释器的Bug啊,它把host+port作为Host,能发出有效访问请求才怪。开发工具跟iOS真机解释器就没有这个问题,所以都能正确访问。

    2020-10-11
    有用
    回复 1
    • 。
      2022-02-14
      大佬  这该如何解决啊
      2022-02-14
      回复
  • 蘇子水良🇨🇳
    蘇子水良🇨🇳
    2020-01-16

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

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


    2020-01-16
    有用
    回复 4
    • 十二
      十二
      2020-04-02
      我也是的,请问最后是怎么解决的?
      2020-04-02
      回复
    • 梦太乱。
      梦太乱。
      2020-05-14回复十二
      请问你在真机上连接成功了吗?怎么解决的?
      2020-05-14
      回复
    • 蘇子水良🇨🇳
      蘇子水良🇨🇳
      2020-05-23回复十二
      方法1、在扫描二维码之后,真机调试中,勾选不校验合法域名..
      方法2、正确配置服务器域名以及证书,,,不勾选合法域名也能连接
      2020-05-23
      回复
    • 蜡笔啊玮
      蜡笔啊玮
      2022-08-05回复蘇子水良🇨🇳
      没用啊 我有正规域名证书 还是不行啊
      2022-08-05
      回复
  • 🍉cmy,
    🍉cmy,
    2019-08-19

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

    2019-08-19
    有用
    回复 1
    • Aoki
      Aoki
      2019-09-23
      QQ1005735462希望交流一下
      2019-09-23
      回复
  • 逆着阳光藐视天
    逆着阳光藐视天
    2019-07-31

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

    2019-07-31
    有用
    回复 1
    • 🍉cmy,
      🍉cmy,
      2019-08-19
      请问你解决了?
      2019-08-19
      回复
  • Likun
    Likun
    2019-03-12

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

    2019-03-12
    有用
    回复 7
    查看更多(2)
登录 后发表内容