在微信小程序中使用mqtt服务的方法


Posted in Javascript onDecember 13, 2019

因为需求的关系,需要在小程序中使用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协议连接。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 插件开发备注
Aug 27 Javascript
javascript创建createXmlHttpRequest对象示例代码
Feb 10 Javascript
jQuery is()函数用法3例
May 06 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
Mar 26 Javascript
JavaScript仿淘宝页面图片滚动加载及刷新回顶部的方法解析
May 24 Javascript
JavaScript对Json的增删改属性详解
Jun 02 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
Oct 18 Javascript
Vue数据驱动模拟实现2
Jan 11 Javascript
JavaScript纯色二维码变成彩色二维码
Jul 23 Javascript
React Native 环境搭建的教程
Aug 19 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
Aug 26 Javascript
关于JSON解析的实现过程解析
Oct 08 Javascript
微信小程序之左右布局的实现代码
Dec 13 #Javascript
vue实现输入一位数字转汉字功能
Dec 13 #Javascript
小程序登录之支付宝授权的实现示例
Dec 13 #Javascript
小程序使用wxs解决wxml保留2位小数问题
Dec 13 #Javascript
微信小程序点击保存图片到本机功能
Dec 13 #Javascript
微信小程序实现轨迹回放的示例代码
Dec 13 #Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
Dec 13 #Javascript
You might like
php对数组内元素进行随机调换的方法
2015/05/12 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
javascript web对话框与弹出窗口
2009/02/22 Javascript
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
使用JavaScript库还是自己写代码?
2010/01/28 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
js实现文字滚动效果
2016/03/03 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
2017/06/18 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
2018/08/22 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
Python getopt模块处理命令行选项实例
2014/05/13 Python
python生成日历实例解析
2014/08/21 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
2020/01/04 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
简单的JAVA编程面试题
2013/03/19 面试题
专业求职信撰写要诀
2014/02/18 职场文书
市场营销求职信范文
2014/02/21 职场文书
售前工程师职业生涯规划
2014/03/02 职场文书
法院干警四风问题个人对照检查材料思想汇报
2014/10/07 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
美容院管理规章制度
2015/08/05 职场文书