uniapp-ZHSQ/utils/mqtt.js
maguodong 42386a201f 添加新的页面路由配置
- 在 app.json 中新增了 routingInspection 和 addRoutingInspection 页面路径
- 新增了 customerService 包下的多个页面配置
- 在 myOrders 包中添加了 groupOrders 页面
- 新增了 smartDevice 和 advertising 包的页面配置
- 更新了 kitchen 页面的 webpack 模块路径引用
2025-09-24 14:28:26 +08:00

117 lines
3.4 KiB
JavaScript

import mqtt from 'mqtt/dist/mqtt'
import Vue from 'vue'
let mqttTool = {
client: null
}
mqttTool.connect = function(params){
let options = {
clientId: params.clientId,
username: 'dev01',
password: '211561',
clean: true,
reconnectPeriod: 1000,
protocolVersion: 4,
connectTimeout: 600000,
cleanSession: false
}
let client = null
client = mqtt.connect('wx://api.hshuishang.com:8084/mqtt', options)
console.log('WX', client)
mqttTool.client = client
if (mqttTool.client) {
console.log('连接成功')
} else {
console.log('连接失败')
}
return client
}
mqttTool.end = function(){
return new Promise((resolve, reject) => {
if (mqttTool.client == null) {
resolve('未连接')
console.log('App_text' + ':end 未连接')
return
}
mqttTool.client.end()
mqttTool.client = null
resolve('连接终止')
})
}
mqttTool.reconnect = function(){
console.log('连接已断开,重新连接中....')
return new Promise((resolve, reject) => {
if (mqttTool.client == null) {
resolve('未连接')
console.log('App_text' + ':reconnect 未连接')
return
}
mqttTool.client.reconnect()
})
}
mqttTool.subscribe = function(params){
return new Promise((resolve, reject) => {
if (mqttTool.client == null) {
resolve('未连接')
console.log('App_text' + ':unconnect 未连接')
return
}
mqttTool.client.subscribe(params.topic, { qos: params.qos }, function(err, res){
console.log(err, res)
if (!err && res.length > 0) {
resolve('订阅成功')
console.log('App_text' + ':subscribe success 订阅成功')
} else {
resolve('订阅失败')
console.log('App_text' + ':subscribe failed 订阅失败')
}
})
})
}
mqttTool.unsubscribe = function(params){
return new Promise((resolve, reject) => {
if (mqttTool.client == null) {
resolve('未连接')
console.log('App_text' + ':unconnect 未连接')
return
}
mqttTool.client.unsubscribe(params.topic, function(err){
if (!err) {
resolve('取消订阅成功')
console.log('App_text' + ':unsubscribe success 取消订阅成功')
} else {
resolve('取消订阅失败')
console.log('App_text' + ':unsubscribe failed 取消订阅失败')
}
})
})
}
mqttTool.publish = function(params){
return new Promise((resolve, reject) => {
if (mqttTool.client == null) {
resolve('未连接')
console.log('App_text' + ':unconnect 未连接')
return
}
mqttTool.client.publish(params.topic, params.message, function(err){
if (!err) {
resolve(params.topic + '-' + params.message + '-发送成功')
console.log('App_text' + ':publish success 发送成功')
} else {
resolve(params.topic + '-' + params.message + '-发送失败')
console.log('App_text' + ':publish failed 发送失败')
}
})
})
}
Vue.prototype.$mqtt = mqttTool
export default mqttTool