vue使用MQTT.js遗嘱失效问题
问题出现的环境背景及自己尝试过哪些方法
就是这个离线了没有发送遗嘱,还有就是刷新页面就发送了遗嘱有很大bug,百度google,github仓库也看了,不知道什么问题,
这是我们老大给我发的消息
Keep Alive指定连接最大空闲时间T,当客户端检测到连接空闲时间超过T时,必须向Broker发送心跳报文PINGREQ,Broker收到心跳请求后返回心跳响应PINGRESP。若Broker超过1.5T时间没收到心跳请求则断开连接,并且投递遗嘱消息到订阅方;同样,若客户端超过一定时间仍没收到心跳响应PINGRESP则断开连接。
坑请前辈给予指教十分感谢### 问题描述
相关代码
粘贴代码文本(请勿用截图)
function mqttRequest({url,
port,
mac,
userName = "",
passWord = ""
}) {
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, //超时时间
reconnect: true, //自动重连
will: {
topic: 'error',
payload: 'Connection Closed abnormally..!',
retain: false,
qos: 0,
},
})
return client
}
你期待的结果是什么?实际看到的错误信息又是什么?
我希望能够关闭这个页面或者掉线了,发送遗嘱,我的环境是uniapp,
另外是不是心跳有问题,这个心跳单位是什么?
回答
可能跟你在什么事件的回调发送遗嘱有关。window.onunload
事件只能在刷新的时候发送 AJAX
请求。window.onbeforeunload
事件可以在关闭前发送请求,但是回调不会被执行,并且要采用同步方式,也可以采用其他方法来暂时阻塞执行线程。
以上是 vue使用MQTT.js遗嘱失效问题 的全部内容, 来源链接: utcz.com/a/33131.html