// #ifdef H5
import mqtt from 'mqtt'
// #endif
// #ifdef MP-WEIXIN||APP-PLUS
import mqtt from '../../node_modules/mqtt/dist/mqtt.min.js'
// #endif
function mqttRequest({
url,
port,
mac,
userName = "",
passWord = "",
payload
}) {
let agreement;
//1.协议
// #ifdef H5
agreement = "ws://"
// #endif
// #ifdef MP-WEIXIN||APP-PLUS
agreement = "wx://"
// #endif
// 2.端口
url = `${agreement}${url}`;
console.log(url)
// 4.根据协议规则必须传递userName: 'admin',password: 'password',
let client = mqtt.connect(url, {
port: port,
username: userName,
clean: true, // 保留回话
// connectTimeout: 4000, // 超时时间
password: passWord,
mac: mac,
keepalive:10,
keepAliveInterval: 4, //心跳包
// timeout: 6, //超时时间
connectTimeout: 4000, // 超时时间
reconnect: true, //自动重连
will: {
topic: 'error',
payload: payload,
retain: false,
qos: 0,
},
})
return client
}
export {
mqttRequest
}
/*
client.on('connect', function() {
console.log('on connect');
连接成功就订阅主题
client.subscribe(["send","close","gg"]);
console.log('订阅成功');
client.on(message("reg","{msg:nihao}"))
function(err) {
if (!err) {
//发送
console.log("发送")
// client.publish('client', 'hello mqtt');
}
}
})
.on('reconnect', function() {
console.log('on reconnect');
})
.on('error', function(err) {
console.log(err)
console.log('on error');
})
.on('end', function() {
console.log('on end');
})
.on('message', function(topic, message) {
console.log("接受,topic:" + topic + ",消息内容:" + message)
})
.on('offline', function() {
client.publish('close', 'close mqtt');
});
*/