赞
踩
MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件 。
引入mqtt.min.js
小程序APP mqtt.min.js下载地址:下载地址
vue网页,可直接使用npm安装即可
npm i mqtt@3.0.0 --save
连接mqtt
// import mqtt from 'mqtt' //vue网页这样引入
let mqtt = require('../common/js/mqtt.min.js') //js地址
//小程序要以wx开头,上线正式版要配置wxs,就是类似https
let mqttUrl = 'wx://127.0.0.1:8083/mqtt' //这是mqtt的访问地址,要以/mqtt结束
let options = {
clean: true, // 是否清除会话
connectTimeout: 4000,
resubscribe: true,
username: userName,
password: '',
//qos:0 ===>发送者只发送一次消息,不进行重试,Broker不会返回确认消息
//qos:1 ===>发送者最少发送一次消息,确保消息到达Broker,Broker需要返回确认消息PUBACK
//qos:2 ===>使用两阶段确认来保证消息的不丢失和不重复
//不懂的话,参考这个网址:https://blog.csdn.net/yangguosb/article/details/78653228
qos: 1,
}
options['url'] = mqttUrl
options['clientId'] = '12345678' // $uuid.uuid(8, 16),clientId不允许重复,我是使用的uuid
console.log(options);
let client = mqtt.connect(options.url, options)
client.on('connect', function() {
console.log('====连接成功====');
let list = ['app/alarm/1','app/alarm/2'] //这是订阅的主题名
//订阅多个主题
client.subscribe(list, {
qos: 1
}, err => {
console.log(err || '订阅成功');
});
})
//mqtt离线
client.on('offline', function() {
console.log('offline')
})
//mqtt接收到信息
client.on('message', function(topic, message) {
let msg = JSON.parse(message.toString())
console.log(msg, '===信息===');
})
//mqtt连接失败
client.on('error', (err) => {
console.log('error', err)
})
还有一个就是关闭mqtt
client.end()
Thanks♪(・ω・)ノ,到此就结束了,有什么问题都可以问!
欢迎评论 / 私信我~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。