在微信小程序中使用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 相关文章推荐
JS获取图片lowsrc属性的方法
Apr 01 Javascript
JavaScript中this详解
Sep 01 Javascript
JS延时器提示框的应用实例代码解析
Apr 27 Javascript
Bootstrap Navbar Component实现响应式导航
Oct 08 Javascript
node.js实现复制文本到剪切板的功能
Jan 23 Javascript
vuejs+element UI点击编辑表格某一行时获取内容填入表单的示例
Oct 31 Javascript
JavaScript Array对象使用方法解析
Sep 24 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
Oct 15 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
Dec 10 Javascript
vue插槽slot的简单理解与用法实例分析
Mar 14 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
Nov 17 Vue.js
Vue实现手机号、验证码登录(60s禁用倒计时)
Dec 19 Vue.js
微信小程序之左右布局的实现代码
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
PHPMYADMIN导入数据最大为2M的解决方法
2012/04/23 PHP
神盾加密解密教程(三)PHP 神盾解密工具
2014/06/08 PHP
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
2017/08/11 PHP
thinkPHP5框架导出Excel文件简单操作示例
2018/08/03 PHP
再谈IE中Flash控件的自动激活 ObjectWrap
2007/03/09 Javascript
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
javascript编码的几个方法详细介绍
2013/01/06 Javascript
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
Jquery实现显示和隐藏的4种简单方式
2013/08/28 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
jQuery实现浮动层随浏览器滚动条滚动的方法
2015/09/22 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
微信小程序调用PHP后台接口 解析纯html文本
2017/06/13 Javascript
React-Native使用Mobx实现购物车功能
2017/09/14 Javascript
vue弹窗消息组件的使用方法
2020/09/24 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
Python获取央视节目单的实现代码
2015/07/25 Python
浅谈编码,解码,乱码的问题
2016/12/30 Python
Python 2与Python 3版本和编码的对比
2017/02/14 Python
python opencv设置摄像头分辨率以及各个参数的方法
2018/04/02 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
解决django中ModelForm多表单组合的问题
2019/07/18 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
Pytorch之parameters的使用
2019/12/31 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
python 操作excel表格的方法
2020/12/05 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
2014年督导工作总结
2014/11/19 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
MYSQL如何查看进程和kill进程
2022/03/13 MySQL