我们正在使用azure-iot-device-mqtt
节点包将debian计算机连接到Azure IOT Hub。我们注意到,当互联网掉线时(即我们断开它)Device Explorer
认为设备仍然连接(大约10秒),并且在此期间被触发的消息不会到达设备(或排队)。 10秒后,它们将出现在设备资源管理器队列中。此外,设备仍然认为它已连接且无法恢复连接。
我们尝试过软件包版本1.1.17和1.2.1,并且两者都有相同的症状。
var clientFromConnectionString = require('azure-iot-device-mqtt').clientFromConnectionString;
var Message = require('azure-iot-device').Message;
var connectionString = 'xxx';
var client = clientFromConnectionString(connectionString);
var connectCallback = function (err) {
if (err) {
console.error('Could not connect: ' + err);
} else {
console.log('Client connected');
var message = new Message('some data from my device');
client.sendEvent(message, function (err) {
if (err) console.log(err.toString());
});
client.on('message', function (msg) {
console.log(msg);
client.complete(msg, function () {
console.log('completed');
});
});
client.on('disconnect', function () {
console.log("disconnect");
});
}
};
client.open(connectCallback);
N.b我们需要MQTT,因为我们正在使用直接方法功能。
一旦断开连接,使用AMQP包,来自云的消息立即进入队列。
问题摘要:
非常感谢任何建议。
谢谢, 大卫