在微信小程序中使用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 相关文章推荐
15个jquery常用方法、小技巧分享
Jan 13 Javascript
原生js页面滚动延迟加载图片
Dec 20 Javascript
理解javascript定时器中的单线程
Feb 23 Javascript
JS实现根据文件字节数返回文件大小的方法
Aug 02 Javascript
浅谈javascript的url参数parse和build函数
Mar 04 Javascript
JavaScript实现的选择排序算法实例分析
Apr 14 Javascript
微信小程序 支付功能实现PHP实例详解
May 12 Javascript
gulp解决跨域的配置文件问题
Jun 08 Javascript
基于React Native 0.52实现轮播图效果
Aug 25 Javascript
Vue 刷新当前路由的实现代码
Sep 26 Javascript
vue中的过滤器及其时间格式化问题
Apr 09 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
Nov 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
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
javascript 循环调用示例介绍
2013/11/20 Javascript
javascript中的throttle和debounce浅析
2014/06/06 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
全面解析Bootstrap中nav、collapse的使用方法
2016/05/22 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
jQuery中的deferred对象和extend方法详解
2017/05/08 jQuery
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
2019/06/05 Javascript
vue实现鼠标经过动画
2019/10/16 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
python3图片转换二进制存入mysql
2013/12/06 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
python switch 实现多分支选择功能
2020/12/21 Python
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
预备党员入党思想汇报
2014/01/04 职场文书
优秀教师主要事迹
2014/02/01 职场文书
目标责任书格式
2014/07/28 职场文书
助学感谢信范文
2015/01/21 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
情况说明书怎么写
2015/10/08 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS