import mqtt from 'mqtt/dist/mqtt.js' //引入mqtt依赖 var client let mqttConnected = false //mqtt连接状态,这个可以不要,直接查询client.connected即可 const publishTopic = '/test/123/456/set' //发布Topic const MQTT_IP = '192.168.9.128:8083/mqtt' //mqtt地址端口 const MQTT_OPTIONS = { connectTimeout: 5000, //连接超时时间 clientId: 'SiD0FMMAxrs', //clientId不能重复,这里可以随机生成 username: 'test', //用户名 password: 'test', //密码 clean: false } //创建客户端连接 export function mqttConnect() { // #ifdef H5 client = mqtt.connect('ws://' + MQTT_IP, MQTT_OPTIONS,function(err){ console.log(err) }) // #endif // #ifdef MP-WEIXIN||APP-PLUS client = mqtt.connect('wx://' + MQTT_IP, MQTT_OPTIONS,function(err){ console.log(err) }) // #endif client.on('connect', function() { console.log('连接成功') mqttConnected = true }).on('reconnect', function(error) { console.log('正在重连...', error) mqttConnected = false }).on('error', function(error) { console.log('连接失败...', error) mqttConnected = false }).on('end', function() { console.log('连接断开') mqttConnected = false }).on('close',function(){ console.log('连接关闭') mqttConnected = false }).on('offline',function(){ console.log('客户端下线') }) } //发布消息 export function mqttPublish(msg){ if(mqttConnected){ client.publish(publishTopic,msg,{qos:1,retain:false});//hello mqtt + console.log('发布了一条消息',msg) }else{ uni.showToast({ title: 'MQTT服务器未连接', icon: 'none' }); } } //断开连接 export function mqttDisconnect(){ console.log('mqttConnected',mqttConnected) console.log('client',client) if(mqttConnected){ client.end(true) mqttConnected = false } }