我在npm中安装了iothub-explorer (据我所知)。从一开始,我就注意到在消息第一次出现之前,在启动之后有一个很大的时间延迟(几秒钟甚至超过一分钟)。它几乎每次都会发生,但如果我很长时间没有运行它或没有重新启动计算机,它就会更频繁、更严重。在第一个时间延迟之后,自启动iothub-eplorer以来发送的所有消息都会批量到达,并且会实时显示下一条消息。问题是,如果我不能依赖iothub-explorer (显示传入的消息),我就不能在我的设备上测试程序。
我使用的是Ubuntu 16.04,我的nodejs版本是v4.2.6,npm版本是3.5.2,我的itohub-explorer版本是1.1.12。
请提供必要的额外信息,因为我对nodejs不是很有经验,也不知道哪些信息是相关的。
更新:我从低级API改为普通API (在后台使用线程)。现在,它似乎真的工作得很好,消息准时到达。但在此之前,尽管iothub-explorer中的消息有延迟,但IOTHUB_CLIENT_CONFIRMATION_OK ack在设备上发送消息后不久就到达了。
发布于 2017-07-24 10:42:36
它是由设计的,因为它同时从几个事件集线器分区接收。为此,您可以检查source code。
您可以利用event hub来解决这个问题。然后你可以发送到一个指定的分区:
CreatePartitionedSender(partition)并且仅从该分区接收:
eventHubClient.GetDefaultConsumerGroup().CreateReceiver(partition, DateTime.UtcNow)请注意,azure物联网集线器和活动集线器都是接近实时的。
https://stackoverflow.com/questions/45215368
复制相似问题