微信小程序使用mqtt开发可以,真机不行

微信小程序mqtt真机调试connect失败 问题 最近学习使用微信小程序实现mqtt通信,在真机调试时遇到一个bug卡住很久:在小程序开发工具中能正常连接服务器、订阅、收发消息,但真机调试和预览不能连接到mqtt服务器。 解决问题前的环境 1. 腾讯云服务器 ubuntu18.04 2. 在服务器上配置好了emqx 3. 部署了ssl证书(免费版) 4. 微信公众平台【开发管理】配置了服务器域名。 如何解决 使用nginx代理。 注意:我是用wget命令下载nginx,安装配置很麻烦。建议大家参考b站up主半颗心脏... 阅读详情
AI摘要

本文详细介绍了如何通过下载mqtt.js库、配置MQTT连接、处理错误与订阅、以及设置Nginx以支持小程序的SSL连接,确保设备成功连接至服务器。

以下可以解决我的问题,请一步一步跟着做,有可能版本不一样就失败了

一、下载mqtt.js

前往蓝奏云 https://wwue.lanzouo.com/iQPdc1k50hpe
在这里插入图片描述
下载好后将.txt改为.js
然后放入项目里
在这里插入图片描述

二、连接mqtt

const mqtt = require('../../utils/mqtt.min');
let client;
// 连接选项
const options = {
  connectTimeout: 30000, // 默认 30 * 1000毫秒,收到 CONNACK 之前等待的时间,即连接超时时间。
  clientId: 'mqttjs_' + Math.random().toString(16).substring(2, 8), // 客户端 ID
  username: 'l', // 连接用户名
  password: 'h0', // 连接密码
  clean: true, // 设置为 false 以在离线时接收 QoS 1 和 2 消息
};
client = mqtt.connect(`wxs://l.com/appletMqtt`, options);
// 链接异常处理
client.on('error', (error) => {
  console.log('连接失败:', error);
});
// 订阅
client.subscribe(
  '/szdx/#',
  {
    qos: 1,
  },
  (error) => {
    if (!error) {
      console.log('订阅成功/szdx/device/in/#');
    } else {
      console.log('订阅失败/szdx/device/in/#');
    }
  }
);
// 接收消息处理
client.on('message', (e, a) => {
  if (e.search('/szdx') > -1) {
    let c = JSON.parse(String(a));
  }
});

三、nginx配置(因为小程序的bug)

emqx官网
需要有ssl证书

server {
    listen  443 ssl;        
    server_name xxx.emqx.io; 
    ssl_certificate   cert/***.pem;
    ssl_certificate_key  cert/***.key;
    ssl_session_timeout  5m;      
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    # 添加反向代理
    location /appletMqtt {
      proxy_pass http://127.0.0.1:8083/mqtt;
      proxy_set_header Host $host;
      proxy_set_header Sec-WebSocket-Protocol mqtt;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      # client_max_body_size 35m;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";    
    }
}

四、最后就可以连上了(别问为什么,有用就行,哈哈)

注意,每一步都是有用的哦,如果你的不行,那么就原样复制一下

微信小程序MQTT真机调试踩坑记:从‘开发工具行’到‘真机不行’的完整解决流程 本文详细解析了微信小程序MQTT真机调试中常见的'开发工具行,真机不行'问题,提供了从协议适配、域名配置到Nginx反向代理的完整解决方案。重点介绍了wxs协议的使用、SSL证书要求以及客户端健壮性连接实现,帮助开发者跨越开发环境与真机环境的鸿沟,确保MQTT连接在微信小程序中稳定运行。 阅读详情

相关推荐

使用微信小程序连接到 MQTT 云服务

微信小程序是腾讯于 2017 年 1 月 9 日推出的一种不需要下载安装即可在微信平台上使用的应用程序,用户扫一扫或者搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。对于开发者而言,小程序开发门槛相对较低,难度不及 APP,能够满足简单的基础应用,对于用户来说,能够节约使用时间成本和手机内存空间,对于开发者来说也能节约开发和推广成本。 本文主要介绍如何在微信小程序项目中使用 MQTT,实现小程序客户端与 MQTT 云服务的连接、

emqx_broker的博客 1万+

微信小程序真机连接MQTT失败,但本地与开发板小程序能正常连接

点开上方链接后可以选择非压缩版和压缩版mqtt.js,点开之后如上图,建议点View Raw打开这个js文件,然后直接alt+A全选复制代码,再粘贴到项目内的mqtt.js内保存,然后上传代码拿出手机进行测试,如果不行你还可以Ctrl+Z撤回代码,不用备份mqtt文件,这样比较方便。如题,用手机打开体验版小程序无法连接mqtt,会一直收到服务器的“reconnect”回调消息,但是本地开发工具运行和真机测试可以正常连接。

weixin_44066951的博客 2172

微信小程序MQTT真机调试踩坑记:从模拟器到真机,我换了mqtt.js才搞定

本文详细解析了微信小程序MQTT真机调试中的常见问题及解决方案,重点介绍了mqtt.js版本选择的重要性。通过对比模拟器与真机环境差异,推荐使用v2.18.8版本实现稳定连接,并提供完整的配置指南和性能优化技巧,帮助开发者高效解决MQTT连接问题。

weixin_30340617的博客 257

微信小程序+MQTT(emqx)+Ngnix解决真机调试持续重新连接问题

最近想用微信小程序订阅MQTT的消息,但是想要用MQTT,微信小程序不允许用ip去连接,必须用经过备案的域名,然后就开始了艰辛的合法域名探索之路。

自由学者亻伊宸的博客 4357

微信小程序mqtt真机失败原因分析

前言 文章写于2021年11月…或许微信已经修复了这个bug?这个bug只出现于安卓端,ios没有问题。 正文 配置部署好证书之后,在面板可以成功连接 但是真机不能连通。微信平台里设置了相关服务器域名,在本地校验合法域名也能成功连接。说明部署的证书有效。 说明问题出在了调试和真机 有人说调试和真机的请求头里的type不一样到时调试失败,但是真机可以。直接上传就可以成功。还有的说是mqtt.js库的版本问题。 但是我的问题不是出在这里。 经过查阅相关资料: https://developers.weix

weixin_45654405的博客 4311

mqttjs微信小程序

小程序mqtt

MQTT微信小程序开发工具可以连接真机不能连接问题解决

MQTT微信小程序开发工具可以连接真机不能连接问题解决 服务器端nginx + mosquttio +koa +微信小程序+mqtt.js mosquttio配置文件 mosquitto.conf 前面的#去掉,找到安装目录执行下面的 找到安装目录执行下面的 wss 手机不能连接的配置文件 location /{ proxy_pass http://iot.xxxx.com:9001;...

u013566525的博客 5845

MQTT协议通讯,支持JS、JAVA、微信小程序客户端

1.broker-Activemq 2.JS客户端-eclipse paho 3.JAVA客户端-eclipse paho 4.微信小程序,当前案例版本不支持直接连接,需要借助nginx实现

【物联网开发】-微信小程序之MQTT连接,基于MQTT实现设备-服务器-小程序的消息传输

本篇文章将会以新手小白的角度一步步剖析如何使用微信小程序通过MQTT服务器连接设备。包括:如何申请MQTT服务器,如何使用微信开发者工具开发小程序,并让设备与服务器建立MQTT连接,订阅主题及发布消息,实现消息在设备-服务器-微信小程序的传输。

weixin_46403492的博客 2万+

js使用mqtt小demo

js支持mqtt.消息的发布订阅和消息的处理,每个消息都有一个特定的主题和具体的消息内容

Carla自动驾驶仿真一:快速安装与运行Carla

网上有不少的Windows版本的Carla的安装教程,这里简单记录下自己安装过程,写的也比较详细,基本不用看其他文章。

zataji的博客 2万+

微信小程序连接MQTT服务器全过程

这里写自定义目录标题准备工作MQTT服务器搭建证书选择证书不完整重启服务器微信小程序使用mqttmqtt.js下载创建mqtt连接其他mqtt.js需要注意的地方mqtt.js的其他地方合法域名问题 准备工作 最近作比赛,需要用到物联网平台,对于实时的系统来说,mqtt透传是最好的选择,而微信小程序的开发成本又很低廉,所以最终决定使用微信小程序+MQTT服务器的方式来实现,其中也踩了不少坑,所以就此分享一下搭建项目的全过程。 首先是需要准备的东西: 一台服务器(我用的是腾讯云) SSL证书(必须品,腾讯云

qq_43554847的博客 2万+

泛微OAe9-自定义资源看板

OA中,有一个很好用的功能:会议室预约。对于一间设立的会议室,同一时间段内,肯定会有不同的人预约同一间会议室,并且,在资源看板里,能看清各个时间段会议室的占用情况,可是会议室资源是有限的,显然不可能让多个人在同一时间段内预约同一间会议室,如会议室已占用,其他人再次申请时,应当拒绝预约。

小松鼠的博客 1849

一篇就够:uniapp-Mqtt系列问题详细攻略(解决掉线、真机调试错误等问题)

不使用mqtt公共服务器来做项目测试需要知道协议转换,以及微信小程序的策略真机调试不上,更换js文件以上就是今天分享的经验,对于还在摸索mqtt的你一定有帮助,这是我花了5个小时踩坑的经历,希望对你有用!💥推荐我的爬虫文章(收费专栏-用心提高质量)💥🤟《记一次云之家签到抓包》🤟《记一次视频抓包m3u8解密过程》🤟《抓包部分软件时无网络+过代理检测 解决办法 安卓黄鸟httpcanary+vmos》🤟《Python】记录抓包分析自动领取芝麻HTTP每日免费IP(成品+教程)》

1万+

别再被SpringerLink虐了!手把手教你搞定LaTeX源文件提交(附正确文件顺序和类型选择)

本文详细解析了SpringerLink投稿系统中LaTeX源文件提交的常见问题与解决方案,包括文件打包、类型选择和顺序排列等关键步骤。通过实战经验,帮助科研人员避开隐形陷阱,一次性完成LaTeX提交,提升投稿效率。特别针对`.bst`和`.cls`文件的正确处理提供了专业指导。

weixin_42522964的博客 445

从手机到自动驾驶:MIPI-CSI2协议演进史与车规级改造要点

本文追溯了MIPI-CSI2协议从智能手机摄像头到自动驾驶核心传感器的演进历程。重点剖析了该协议在车规级改造中面临的严苛挑战,包括物理层稳定性、EMC防护、功能安全与数据可靠性等关键要点,并探讨了其在多传感器融合与高带宽实时传输中的工程实践。

weixin_28318011的博客 309

解决微信小程序中使用mqtt,真机调试不能访问的问题

学习记录 在开发者工具中使用mqtt可以访问,但是在真机调试的时候就不行,这是因为微信小程序安卓真机解释器的Bug,它把host+port作为Host 开发者工具中的请求地址,不带端口 真机调试带端口 解决方案使用最新的mqtt.js,替换掉原来的mqtt.js即可 替换后真机调试不带端口 ...

xiaommxhxxl的博客 7247

嵌入式通讯协议全解析:UART、I2C、SPI、CAN与Modbus实战指南

通讯协议是嵌入式系统设计的核心基础,也是面试与工程实践中避不开的关键环节。从串口UART的异步收发,到I2C总线寻址与SPI高速全双工传输,再到RS485差分长距离通信、CAN总线多主仲裁机制,以及工业领域事实标准的Modbus RTU协议,每一种技术都对应着特定的应用场景与设计权衡。理解协议背后的物理层原理、时序特征和工程坑点,才能真正解决设备间通信的选型、调试与健壮性问题。本文从基础概念出发,系统梳理各类嵌入式通讯协议的工作机制,并结合实际代码示例与对比表格,帮助开发者在面对面试问题或项目设计时,构建从

weixin_42520573的博客 277

微信小程序使用MQTT.js连接阿里云IoT物联网平台

随便在一个页面的js文件中加入以下代码,注意替换参数为自己产品和设备的参数问:为什么硬件设备连上之后小程序就断开或者小程序连上之后硬件设备就断开(或者反复断开和重连)?答:这是因为同一时间使用了同一组设备参数【ProductKey,DeviceName,DeviceSecret】

每天进步一点就够了 6万+

寒武纪AI芯片业务解析:从云端到边缘,如何布局智能计算未来?

本文深入解析了寒武纪在AI芯片领域的业务布局,重点探讨了其从云端到边缘的智能计算战略。文章分析了寒武纪云端“思元”系列芯片如何作为数据中心的高性能计算基石,以及思元220等边缘芯片如何满足碎片化场景的低功耗实时处理需求。同时,也阐述了其IP授权业务模式与技术生态构建,揭示了寒武纪在激烈市场竞争中,通过软硬件全栈方案布局智能计算未来的核心路径。

weixin_29271053的博客 405

使用MATLAB/Simulink对一个简单的智能家居温湿度监测与控制系统进行建模和仿真

目录手把手教你学Simulink——基于Simulink的智能家居温湿度监测与控制仿真建模示例一、背景介绍二、所需工具和环境三、步骤详解步骤1:创建Simulink模型步骤2:构建传感器模块步骤3:添加控制器步骤4:构建执行器模块步骤5:连接各部分步骤6:设置仿真参数步骤7:添加观测器步骤8:运行仿真并分析结果四、总结 智能家居系统中的温湿度监测与控制系统是一个典型的物联网(IoT)应用场景,它通过传感器收集环境数据,并根据预设条件自动调节室内温度和湿度以提高居住舒适度。本指南将介绍如何使用MATLAB/S

xiaoheshang_123的博客 291

微信小程序使用MQTT.JS中遇到的问题

微信小程序使用MQTT.JS中遇到的问题

c519299013的专栏 2385

SAP VC 可配置物料超级BOM简介

在有些业务中比如:汽车、笔记本、电脑、电梯等产品中,其中组成产品的型号个框架是确认的 ,但是框架内部的BOM是可变的,在客户下销售订单的时候,选取对应的组件 ,让后通过MRP的计算优生产线对这样的销售订单提供生产。这个时候我们需要选择我们需要的内存和硬盘的型号,还记得我们前面创建的特征值对应的吗,A对应的8G、B对应16G、X对应1T硬盘、Y对应2T硬盘,这里我们填写对应的值,我们这里选择16G的内存和2T的硬盘,B和Y。3、当我们选择了可配置物料的生产模式时,基本上就选择了按单生产的生产模式了。

我小时候很黑的博客 1万+

在微信小程序中打造 MQTT 连接测试工具

本文将以 MQTT 连接测试场景为例,使用 MQTT.js 连接到 MQTT 服务,并在微信小程序中实现一个简单方便的 MQTT 连接测试工具。

emqx_broker的博客 2105

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【免费下载】 物联网-微信小程序-mqtt.min.js-真机可直连微信小程序

物联网-微信小程序-mqtt.min.js-真机可直连微信小程序 【下载地址】物联网-微信小程序-mqtt.min.js-真机可直连微信小程序 物联网-微信小程序-mqtt.min.js-真机可直连微信小程序 项目地址: http...

gitblog_09810的博客 833

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: linux centos 部署 jenkins
下一篇: php no input file specified
xl__qd
博客等级 码龄5年 4492粉丝 155原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xl__qd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值