【发布时间】:2019-12-12 03:44:10
【问题描述】:
我正在尝试设置 aws-iot-device-sdk-js 在 wifi 切换后具有重新连接行为,并且需要大约 20 分钟才能完成。我不确定我错在哪里,文档没有任何关于我也遇到了这个问题。
我已尝试浏览软件包文档并尝试更改 keepalive 时间,但它仍然显示相同的输出,仅在 20 分钟后调用 offine 并重新连接。
const awsIot = require("aws-iot-device-sdk").device;
const certs = require("./certs_config");
const device = awsIot({
keyPath: certs.KEYPATH,
certPath: certs.CERTPATH,
caPath: certs.CAPATH,
deviceId: "rt.bottle.com.np",
host: "aot2wgmcbqwsa-ats.iot.ap-south-1.amazonaws.com",
region: "ap-south-1",
keepalive: 60
});
let delay = 4000;
let count = 0;
const minimumDelay = 250;
if ((Math.max(delay, minimumDelay)) !== delay) {
console.log('substituting ' + minimumDelay + 'ms delay for ' + delay + 'ms...');
}
setInterval(function () {
count++;
device.publish('topic', JSON.stringify({
count
}));
}, Math.max(delay, minimumDelay)); // clip to minimum
device
.on('connect', function () {
console.log('connect');
});
device
.on('close', function () {
console.log('close');
});
device
.on('reconnect', function () {
console.log('reconnect');
});
device
.on('offline', function () {
console.log('offline');
});
device
.on('error', function (error) {
console.log('error', error);
});
device
.on('message', function (topic, payload) {
console.log('message', topic, payload.toString());
});
在 aws 控制台中,我收到此消息:
Mqtt 连接丢失。重新连接。错误代码:4. AMQJS0004E Ping 超时。
在网络切换大约 1.5 分钟后,但在节点服务器设置中,正如您在下面的代码中看到的那样,它仅在大约 20 分钟内收到离线消息。我想在断开连接或脱机后立即获取错误/脱机/断开连接。(即当在 aws 控制台上收到错误时)按预期。
【问题讨论】:
标签: amazon-web-services aws-sdk aws-iot