微信小程序使用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.消息的发布订阅和消息的处理,每个消息都有一个特定的主题和具体的消息内容

Meta-World环境实战解析:pick-place-v2中的状态观测与动作控制

本文深入解析了Meta-World中pick-place-v2环境的强化学习实战要点。文章详细拆解了39维状态观测向量的构成与意义,包括机械臂末端、物体位置及目标坐标,并揭示了默认部分可观测设置的潜在影响。同时,阐述了4维动作空间的控制逻辑与奖励函数的分阶段设计,为训练高效稳定的抓放策略提供了核心指导与实用调优技巧。

weixin_29184371的博客 77

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

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

qq_43554847的博客 2万+

别再只抄代码了!深入理解MQ2传感器数据手册,搞定ppm换算公式

本文深入解析MQ2烟雾传感器的工作原理与ppm换算公式,从数据手册解读到数学建模,提供详细的校准与优化方法。通过实际案例和代码示例,帮助开发者准确测量气体浓度,解决常见问题,提升传感器应用的可靠性。

weixin_42713608的博客 504

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

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

1万+

QT插件学习系列(一) 初识QtPlugin

QT插件学习系列(一) 初识QtPlugin 1、 概述 为什么我们要学习插件化,其和 windows 导出 dll 有什么区别呢? 导出的动态库如果缺失,程序不能运行。但插件可以。 同一套代码,即可分别在 windows 下和 linux 下生成插件。 QT 本身提供两种插件支持,一种称为高级 API,一种称为低级 API。 高级API的作用是扩展 QT 程序本身,需要子类化 QT 提供的插件基类,例如现有的 QTSqlDriver,因此你可也以编写自己的 QTStyle 扩展 QT。 低级

L_Andy的专栏 3115

保姆级教程:用Jetson Orin Nano和ROS2 Humble搞定PIXhawk 4飞控通信(含配置文件详解)

本文提供了一份详细的Jetson Orin Nano与PIXhawk 4飞控通信配置指南,涵盖硬件连接、ROS2 Humble环境搭建、MAVROS2配置及通信调试全流程。通过实战案例和配置文件详解,帮助开发者快速实现无人机上位机与飞控的稳定通信,适用于无人机开发与自动化控制场景。

weixin_33670786的博客 475

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

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

xiaommxhxxl的博客 7247

N32在Keil中J-Link识别失败的排查与修复指南

本文详细解析了在Keil开发环境中,J-Link调试器无法识别N32系列MCU的常见问题。通过分步指导,从检查修改Keil工程配置文件、更新J-Link驱动,到手动添加N32专用设备支持包,系统性地提供了排查与修复方案,帮助开发者快速恢复调试连接,确保开发流程顺畅。

304

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

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

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

从零搭建SPI通信系统:AXI Quad SPI IP核在Xilinx平台上的完整配置流程

本文详细介绍了在Xilinx平台上使用AXI Quad SPI IP核从零搭建SPI通信系统的完整配置流程。涵盖IP核架构解析、Vivado环境配置、寄存器编程实战及性能优化策略,帮助开发者快速实现高速稳定的SPI通信,特别适用于嵌入式系统开发中的外围设备连接需求。

hh234的博客 1053

31、航空软件标准DO - 178C/ED - 12C的实践解读

本文深入解读了航空软件标准DO-178C/ED-12C相较于DO-178B的主要变化,涵盖核心文本更新、各章节关键改进及新技术补充文件的影响。重点分析了目标与活动关系、需求层级定义、验证独立性、MC/DC覆盖、停用代码处理等关键变更,并提供了应对策略,包括流程调整、文档更新、工具选择和与认证机构沟通等建议,旨在帮助航空软件开发者确保合规性,提升软件安全性与可靠性。

tech5的博客 246

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

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

c519299013的专栏 2385

用 SAP Fiori Launchpad Content Manager 做目录传输:把 Catalog 变更稳稳送到目标系统

摘要:SAP Fiori项目中,目录传输是确保应用一致交付的关键环节。开发团队常遇到目录在不同系统/客户端间不一致的问题,核心在于理解Launchpad内容管理的两种作用域:系统级(/UI2/FLPCM_CONF)使用workbench请求跨系统传输,客户端级(/UI2/FLPCM_CUST)通过customizing请求按SCC4设置传输。混淆作用域会导致目录分叉,如系统级目录被客户端本地修改后形成独立副本。官方推荐使用Content Manager而非过时的Launchpad Designer,并强调手

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 105

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

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

emqx_broker的博客 2105

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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

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

gitblog_09810的博客 833

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: 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、付费专栏及课程。

余额充值