我有一个node.js代码(设备端),用于侦听azure IotHub的设备队列上的消息。
在下一个场景中:
设备没有从队列中读取旧消息,只要我发送新消息 - 它就会读取它。
如何更改设备代码以收听旧信息?
答案 0 :(得分:1)
您可以查看此文章以了解Azure IoT Hub Cloud-to-device Messaging。从显示IoT Hub中云到设备消息的生命周期状态图的图表中,IoT Hub在每个设备队列中保留云到设备消息。设备必须明确承认IoT Hub的完成才能将其从队列中删除。这种方法可以保证抵御连接和设备故障的弹性。
在介绍如何为node.js send cloud-to-device messages with IoT Hub的文档中,如果首先运行SendCloudToDeviceMessage.js,则消息将被排队,然后在运行SimulatedDevice.js时(请注意修改< strong> connectCallback 函数用完整方法处理邮件,客户端将收到邮件。
var connectCallback = function (err) {
if (err) {
console.log('Could not connect: ' + err);
} else {
console.log('Client connected');
client.on('message', function (msg) {
console.log('Id: ' + msg.messageId + ' Body: ' + msg.data);
client.complete(msg, printResultFor('completed'));
});
}
};