程序谷 认真生活 享受生活

微信小程序连接MQTT

⚠️ 本文最后更新于2023年11月15日,已经过了625天没有更新,若内容或图片失效,请留言反馈

服务器配置

配置wss

将wss的消息转到ws上

nginx配置如下

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 /mqtt {
      proxy_pass http://127.0.0.1:8083/mqtt;
      proxy_set_header Host $host;
      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";    
    }

}

小程序配置

设置合法域名

登录小程序后台 --> 开发 --> 开发管理 --> 开发设置 --> 服务器域名 --> socket合法域名 --> 设置wss域名

小程序设置

下载MQTT程序,不要用EMQ官方的demo,那个只能在模拟器运行,真机不行。

下载MQTT.js

代码

    const client = mqtt.connect('wxs://xxxx', {
      protocolVersion: 4, //MQTT连接协议版本
      clientId: '''xxxxx''',
      clean: true,
      password: 'xxx',
      username: 'xxx',
      reconnectPeriod: 1000, //1000毫秒,两次重新连接之间的间隔
      connectTimeout: 30 * 1000, //1000毫秒,两次重新连接之间的间隔
      resubscribe: true //如果连接断开并重新连接,则会再次自动订阅已订阅的主题(默认true)
    });

    //服务器连接异常的回调
    client.on("error", function(error) {
      console.log(" 服务器 error 的回调" + error)
    })
    //服务器重连连接异常的回调
    client.on("reconnect", function() {
      console.log(" 服务器 reconnect的回调")
    })
    //服务器连接异常的回调
    client.on("offline", function(errr) {
      console.log(" 服务器offline的回调")
    })

其他就都一样了

By 大芃展翅 On
此页面评论区已关闭
程序谷 |  蜀ICP备2020031553号-1