如何在Python中发送来自物联网设备的C2D消息反馈响应



我有一个在物联网设备上运行的python脚本,它从Azure物联网中心接收消息并执行任务。我想让反馈过程发挥作用,但缺少一些理解。

如何从设备发送反馈响应?它只是使用以某种方式格式化为message_id的device_client.send_message发送云到设备消息吗?或者还有其他我不知道的发送反馈方法吗?我在这里没有看到任何与反馈回复有关的内容。

我正在使用一个函数应用程序(用js编写(来发送C2D消息,它有一个函数,看起来就像它只是在控制台上记录响应:

function printResultFor(op) {
return function printResult(err, res) {
if (err) console.log(op + " error: " + err.toString());
if (res) console.log(op + " status: " + res.constructor.name);
};
}

当反馈从设备发送时,我想它会在这里被捕获。然后,我是否需要以某种方式将其发送回物联网中心以利用重试功能?

谢谢!

C2D机制是单向的,设备不发送任何响应。如果您希望设备发送对请求的响应,则应使用直接方法。有关详细信息,请参阅https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-c2d-guidance.

为了确保C2D消息的一次性交付,IoT Hub使用每个设备的队列-了解该队列的工作原理,请参阅,https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-c2d

根据C、C#和Java设备SDK中的自述文件:;接收云到设备的消息,并从物联网中心读取相关的自定义和系统属性,可以选择完成/拒绝/放弃C2D消息IoT Hub目前仅支持通过HTTPS和AMQP完成/拒绝/放弃C2D消息的选项"Python SDK目前自动完成所有C2D消息-不可能拒绝或放弃C2D消息。

最新更新