【问题标题】:iothub-explorer has time lag after start showing device to cloud messagesiothub-explorer 在开始向云消息显示设备后有时间延迟
【发布时间】:2017-07-25 00:12:43
【问题描述】:

我用 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_CLIENT_CONFIRMATION_OK ack 在消息发送到设备后很快就到达了,尽管 iothub-explorer 中的消息有延迟。

【问题讨论】:

  • 可以在运行程序发送消息之前启动iothub-eplorer吗?
  • 我就是这么做的。前三个消息是批量发送的,其余的则正常。但我之前已经启动过几次iothub-explorer。

标签: azure-iot-hub


【解决方案1】:

它是经过设计的,因为它同时从多个事件中心分区接收。为此,您可以查看source code

您可以使用事件中心的解决方法。然后你可以发送到一个指定的分区:

CreatePartitionedSender(partition)

并且只从这个分区接收:

eventHubClient.GetDefaultConsumerGroup().CreateReceiver(partition, DateTime.UtcNow)

请注意,azure iot hub 和 event hub 都是接近实时的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-09
    • 2016-09-25
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多