我正在将IoT中心用于我的移动应用程序。我想知道设备的连接/断开状态。所以我使用了事件网格断开事件。但是我没有使用移动设备获得任何状态。但是,当尝试https://azure-samples.github.io/raspberry-pi-web-simulator/#Getstarted时,状态将返回。但是使用移动应用程序并发送相同的数据时,它无法正常工作。
实际上,文档建议作为一种好的做法,在这种情况下实施heartbeat pattern。
想法是每隔一段时间发送一次D2C消息,然后检测消息到达的时间不超过某个时间阈值的设备。
例如,一种简单的方法是,您可以将HB消息存储到CosmosDB,以便每个HB消息都覆盖前一个(使用设备ID作为文档ID),并具有时间触发功能,该功能可以检查哪些设备报告了hb消息早于X时间。
[能否请您共享使用哪个协议通过移动应用程序连接到Azure IoT中心。Raspberry的示例使用MQTT,eventgrid与MQTT很好地配合使用,但是您需要做一些小的改动以使AMQP与EventGrid一起使用。