首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从1000个设备中获取connectionState的最佳方法- Azure IoTHub

从1000个设备中获取connectionState的最佳方法- Azure IoTHub
EN

Stack Overflow用户
提问于 2018-04-17 11:43:42
回答 1查看 988关注 0票数 5

从1000多个设备中获取connectionState的最佳方法。目前还没有那么多的设备,但需要一个有效的解决方案。

根据我的理解,目前我可以使用

  1. IotHub Queries(select * from devices)registryManager.GetDevicesAsync(100); --当查询1000个设备时,这些方法不是实时的,或者当设备数量增加时,这些方法不会有效。
  2. HeartBeat --我不喜欢这样做,因为当设备数量很大时,这会导致过多的消息发送。
  3. 操作监控/诊断监控--第一个很好,但到2018年10月就被否决了,第二个甚至需要2分钟才能得到消息(这个延迟我自己已经试过了,并发现了)。

请提出一些方法,并纠正我,如果我是错误的,以上任何一项。

EN

回答 1

Stack Overflow用户

发布于 2018-04-20 09:53:26

建议只在开发和调试期间使用ConnectionState字段,而不是在产品解决方案中使用。

检索connectionState有一个限制,因为在一次调用中返回的最大设备标识数为1000。

如果您的IoT解决方案需要知道设备是否已连接,则应实现心跳模式

考虑到您所关心的心跳开销,您可以使用这个API:DeviceClient.OperationTimeoutInMilliseconds设置一个较小的超时。

该模式实现了与使用心跳模式维护设备连接状态注册表相同的结果,同时更有效。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49877178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档