在微信小程序中使用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 相关文章推荐
兼容IE和FF的js脚本代码小结(比较常用)
Dec 06 Javascript
window.open以post方式将内容提交到新窗口
Dec 26 Javascript
使用JQuery库提供的扩展功能实现自定义方法
Sep 09 Javascript
bootstrap改变按钮加载状态
Dec 01 Javascript
jQuery中:visible选择器用法实例
Dec 30 Javascript
自定义刻度jQuery进度条及插件
Sep 02 Javascript
js实现炫酷的左右轮播图
Jan 18 Javascript
老生常谈jquery中detach()和remove()的区别
Mar 02 Javascript
Mac下安装vue
Apr 11 Javascript
jQuery实现使用sort方法对json数据排序的方法
Apr 17 jQuery
基于layui框架响应式布局的一些使用详解
Sep 16 Javascript
js实现圆形显示鼠标单击位置
Feb 11 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
用文本作数据处理
2006/10/09 PHP
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
phpmyadmin打开很慢的解决方法
2014/04/21 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(五)
2014/06/23 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
js 目录列举函数
2008/11/06 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
为输入框加入数字js校验代码分享
2017/11/02 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
小程序自定义弹框效果
2020/11/16 Javascript
[01:01:43]EG vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
python的urllib模块显示下载进度示例
2014/01/17 Python
在Python中使用sort()方法进行排序的简单教程
2015/05/21 Python
Python中time模块和datetime模块的用法示例
2016/02/28 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
css3实现简单的白云飘动背景特效
2020/10/28 HTML / CSS
就业推荐自我鉴定
2013/10/06 职场文书
会计专业毕业生推荐信
2013/11/05 职场文书
竞聘副主任科员演讲稿
2014/01/11 职场文书
会计自荐信范文
2014/03/09 职场文书
经典婚礼主持词
2014/03/13 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang
SQLServer中exists和except用法介绍
2021/12/04 SQL Server