在微信小程序中使用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 应用代码 方便的排序功能
Feb 06 Javascript
js实现的日期操作类DateTime函数代码
Mar 16 Javascript
javascript 中that的含义示例介绍
May 14 Javascript
js实现微信分享代码
Oct 11 Javascript
js 获取范围内的随机数实例代码
Aug 02 Javascript
JS匿名函数实例分析
Nov 26 Javascript
JavaScript实现三级联动效果
Jul 15 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
Jul 17 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
Jan 15 Javascript
JS实现深度优先搜索求解两点间最短路径
Jan 17 Javascript
layui.tree组件的使用以及搜索节点功能的实现
Sep 26 Javascript
vue.js 使用原生js实现轮播图
Apr 26 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
解析php时间戳与日期的转换
2013/06/06 PHP
PHP验证码函数代码(简单实用)
2013/09/29 PHP
php获取字段名示例分享
2014/03/03 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
使用js简单实现了tree树菜单
2013/11/20 Javascript
JavaScript里实用的原生API汇总
2015/05/14 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
详解vue 数组和对象渲染问题
2018/09/21 Javascript
uniapp实现横向滚动选择日期
2020/10/21 Javascript
Python with的用法
2014/08/22 Python
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
Numpy之random函数使用学习
2019/01/29 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
django在开发中取消外键约束的实现
2020/05/20 Python
如何利用python发送邮件
2020/09/26 Python
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
CSMA/CD介质访问控制协议
2015/11/17 面试题
后进生转化工作制度
2014/01/17 职场文书
大家访活动实施方案
2014/03/10 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
党支部对转正的意见
2015/06/02 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
Nginx工作原理和优化总结。
2021/04/02 Servers
python基础学习之递归函数知识总结
2021/05/26 Python
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript
Nginx如何配置根据路径转发详解
2022/07/23 Servers