在微信小程序中使用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 事件对象属性小结
Apr 27 Javascript
JavaScript中使用构造函数实现继承的代码
Aug 12 Javascript
window resize和scroll事件的基本优化思路
Apr 29 Javascript
JQuery控制Radio选中方法分析
May 29 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
Aug 27 Javascript
谈谈javascript中使用连等赋值操作带来的问题
Nov 26 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
Jan 18 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
Dec 08 Javascript
JS异步文件分片断点上传的实现思路
Dec 25 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
Sep 04 Javascript
微信小程序wx.previewImage预览图片实例详解
Dec 07 Javascript
vue文件树组件使用详解
Mar 29 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
pdo中使用参数化查询sql
2011/08/11 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
浅谈php处理后端&接口访问超时的解决方法
2016/10/29 PHP
PHP new static 和 new self详解
2017/02/19 PHP
laravel多条件查询方法(and,or嵌套查询)
2019/10/09 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
dwz 如何去掉ajaxloading具体代码
2013/05/22 Javascript
一个JavaScript变量声明的知识点
2013/10/28 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
Javascript中实现String.startsWith和endsWith方法
2015/06/10 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
javascript self对象使用详解
2016/10/18 Javascript
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
python的json包位置及用法总结
2020/06/21 Python
Python如何将将模块分割成多个文件
2020/08/04 Python
CSS3实现超慢速移动动画效果非常流畅无卡顿
2014/06/15 HTML / CSS
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
不可轻视HTML5!App三年内将被html5顶替彻底消失
2015/11/18 HTML / CSS
印度低票价航空公司:GoAir
2017/10/11 全球购物
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
Diesel美国网上商店:意大利牛仔时装品牌
2020/12/10 全球购物
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
求职信范文英文版
2014/01/05 职场文书
写给保洁员表扬信
2014/01/08 职场文书
教师个人年终总结
2015/02/11 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
交通事故调解协议书
2015/05/20 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
二年级数学教学反思
2016/02/16 职场文书
600字作文之感受大自然
2019/11/27 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
《废话连篇——致新手》——chinapizza
2022/04/05 无线电