EventGrid IoT 中心 DeviceConnected 和 DeviceDisconnected 事件何时引发

问题描述

IoT 中心通过事件网格 according to the documentation 发布事件“DeviceConnected”和“DeviceDisconnected”。

我的问题是,实际物联网设备的哪个动作会触发这些事件?

对于“DeviceConnected”事件:

  • 是否在客户端 SDK 上调用 OpenAsync 方法时触发?
  • 是否在调用 SendEvent 方法时隐式触发?
  • 此事件是否也可通过直接 AMQP/MQTT 连接获得?
  • 它会保持这种状态多久?

对于“DeviceDisconnected”事件:

  • 一旦调用 DeviceClient 上的“关闭”,设备是否会“断开连接”?
  • 如果连接不好怎么办?是否有持续的 ping 以及超时机制,用于在设备空闲一段时间后将其标记为离线?

我们目前已按照 here 所述实施了心跳模式,但我们想知道是否有一种更简单且最终更具成本效益的方法来实现相同的目标。

解决方法

我在 documentation

中找到了这段话

仅针对使用 MQTT 或 AMQP 的设备更新连接状态。 此外,它基于协议级 ping(MQTT ping 或 AMQP ping), 并且最多只能延迟 5 分钟。由于这些原因, 可能存在误报,例如设备报告为已连接 但那是断开的。

这涵盖了我的大部分问题。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...