在微信小程序中使用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 相关文章推荐
多个iframe自动调整大小的问题
Sep 18 Javascript
function, new function, new Function之间的区别
Mar 08 Javascript
常规表格多表头查询示例
Feb 21 Javascript
js模拟淘宝网的多级选择菜单实现方法
Aug 18 Javascript
jQuery实现鼠标经过事件的延时处理效果
Aug 20 Javascript
使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo
Sep 01 Javascript
微信小程序 表单Form实例详解(附源码)
Dec 22 Javascript
字太多用...代替的方法(两种)
Mar 15 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
Nov 27 Javascript
详解vue.js移动端配置flexible.js及注意事项
Apr 10 Javascript
微信小程序订阅消息(java后端实现)开发
Jun 01 Javascript
使用vant的地域控件追加全部选项
Nov 03 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类
2006/11/27 PHP
php中hashtable实现示例分享
2014/02/13 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
JSON语法五大要素图文介绍
2012/12/04 Javascript
JavaScript中this详解
2015/09/01 Javascript
实现非常简单的js双向数据绑定
2015/11/06 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
2016/05/24 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
2020/03/10 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
vue-router定义元信息meta操作
2020/12/07 Vue.js
跟老齐学Python之用Python计算
2014/09/12 Python
举例讲解Python中的算数运算符的用法
2015/05/13 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
python将print输出的信息保留到日志文件中
2019/09/27 Python
Python 异常处理Ⅳ过程图解
2019/10/18 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
北承题目(C++)
2012/05/16 面试题
毕业实习评语
2014/02/10 职场文书
诚实守信道德模范事迹材料
2014/08/15 职场文书
工程部岗位职责范本
2015/04/11 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书
Oracle表空间与权限的深入讲解
2021/11/17 Oracle