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

回到顶部