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

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

一、下载mqtt.js

前往蓝奏云 https://wwue.lanzouo.com/iQPdc1k50hpe

下载好后将.txt改为.js

然后放入项目里

二、连接mqtt

javascript 复制代码
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证书

bash 复制代码
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";    
    }
}

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

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

相关推荐
weixin_177297220697 小时前
旧物二手回收小程序:引领绿色消费,开启时尚生活新方式
小程序·盲盒
2501_916007478 小时前
Fastlane 结合 开心上架(Appuploader)命令行实现跨平台上传发布 iOS App 的完整方案
android·ios·小程序·https·uni-app·iphone·webview
韩立学长8 小时前
【开题答辩实录分享】以《植物病虫害在线答疑小程序的设计与实现》为例进行答辩实录分享
spring boot·小程序·vue
好想早点睡.9 小时前
vue2+UniApp微信小程序集成高德地图
微信小程序·小程序·uni-app
李慕婉学姐11 小时前
【开题答辩过程】以《基于微信小程序的线上讲座管理系统》为例,不会开题答辩的可以进来看看
javascript·mysql·微信小程序
2501_9159184111 小时前
iOS 上架应用市场全流程指南,App Store 审核机制、证书管理与跨平台免 Mac 上传发布方案(含开心上架实战)
android·macos·ios·小程序·uni-app·cocoa·iphone
Mr.Aholic12 小时前
分享几个开源的系统,包括小程序、商城系统、二手交易等常见的系统、很容易进行二次开发 【可以参考学习】
微信小程序·小程序·毕业设计·课程设计
2501_9159090614 小时前
HTTPS 错误排查实战,从握手到应用层的工程化流程
网络协议·http·ios·小程序·https·uni-app·iphone
JIngJaneIL18 小时前
口腔健康系统|口腔医疗|基于java和小程序的口腔健康系统小程序设计与实现(源码+数据库+文档)
java·数据库·spring boot·小程序·论文·毕设·口腔医疗小程序
小光学长1 天前
基于微信小程序的背单词系统x1o5sz72(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·微信小程序·小程序