zoukankan      html  css  js  c++  java
  • 在微信小程序中使用mqtt服务

    因为需求的关系,需要在小程序中使用mqtt来进行tcp的长连接,实时监听设备的返回状态。

    js中连接mqtt服务器是通过websocket来实现的,我在网上找了2个库,一个是eclipse开发的paho-mqtt。

    项目地址:https://github.com/eclipse/paho.mqtt.javascript

    一个是个人开发的mqttjs,项目地址:https://github.com/mqttjs/MQTT.js

    比较了下,mqqtt.js比较灵活对小程序也有很好的支持,所以采用了这个库来做连接。

    于是看了下他自己的介绍,直接拿过来试用了下。因为是直接用在小程序中不需要那么复杂,它提供了静态的cdn下载,

    直接打开链接复制到工程中直接用就可以,不用更改。cdn地址:https://unpkg.com/mqtt@2.18.8/dist/mqtt.js min版:https://unpkg.com/mqtt@2.18.8/dist/mqtt.min.js;

    使用起来也很简单,直接贴代码

    function connectMq(){
    
        // 连接选项
        const options = {
          connectTimeout: 4000, // 超时时间
          // 认证信息 按自己需求填写
          clientId: '',
          username: 'xxx',
          password: 'xxx',
        }
        let phone = app.globalData.myInfo.TelPhone;
        const client = mqtt.connect('wx://xx.xxxxxxx', options)
    
        client.on('reconnect', (error) => {
          console.log('正在重连:', error)
        })
    
        client.on('error', (error) => {
          console.log('连接失败:', error)
        })
    
        client.on('connect', (e) => {
          console.log('成功连接服务器111')
            //订阅一个主题
          client.subscribe('phone_' + phone, { qos: 0 }, function (err) {
            if (!err) {
              //client.publish('123', 'Hello mqtt')
              console.log("订阅成功")
            }
    
          })
        })
        //监听mq的返回
        client.on('message', function (topic, message, packet) {
          // message is Buffer
          console.log("packet", packet.payload.toString())
          client.end()
        })
    
    
    
    }    
    

     这里着重要注意的连接地址的写法

    //mqtt.connect('wx://xxxxxxxxxx', options);
    //wx://   xx.xx.xxxxxxx
    //协议版本  链接地址 
    //微信小程序这个版本 作者自己封装了一层 wx表示普通的ws协议连接 wxs表示加密之后的wss协议连接。
    

      

  • 相关阅读:
    WebUploader IE9下报错
    raphael 支持group(简)
    SVG image xlink:href 设置失败
    活动倒计时代码(精确到毫秒)jquery插件
    PHP连续签到
    PHP判断是否微新浏览器
    php中文匹配
    PHP+mysql统计排名第几位
    php随机抽奖实例分析
    类似a:hover的伪类的注解
  • 原文地址:https://www.cnblogs.com/missmz/p/10483548.html
Copyright © 2011-2022 走看看