Azure - 将数据从 IoT 中心发送到 Web 应用程序后端

Azure - Sending data from IoT Hub to Web App Backend

我正在寻找一种解决方案,以将数据从 Azure IoT 中心获取到同样托管在 Azure 中的 Web 应用程序的后端,该应用程序是用 ASP.NET 4.6 编写的。 最好尽快接收原始 Json 字符串。

我发现其他人建议将 Webhooks 或 Azure 功能用于类似的目的,但这些解决方案带来的延迟并不是真正可以接受的。 最好直接连接到 IoT 端点并在收到每条消息时获取它。任何人都可以指出正确的方向吗?

Azure SignalR Service 可以帮助将消息广播到 Web 应用程序实例。

Azure IoT 中心和 Azure SignalR 服务之间没有直接集成。基本上,您可以为此集成使用两种模式,例如 PULL-PUSHPUSH-PUSH.

以下屏幕显示了这些集成模式:

注意,Azure 事件网格的PUSH-PUSH 模式适用于当订阅者(消费者)对按顺序处理事件不重要时的解决方案。

您只需在您的 Web 应用程序中使用 EventHub .NET SDK,连接到 IoT 中心的 EventHub-compatible endpoint 并直接使用您的应用程序中的事件。这具有最小的延迟并且不涉及额外的组件。

如何指导(.NET core 但同样适用于 .NET Framework):https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-dotnet-standard-getstarted-send#receive-events

var eventProcessorHost = new EventProcessorHost(
            EventHubName,
            PartitionReceiver.DefaultConsumerGroupName,
            EventHubConnectionString,
            StorageConnectionString,
            StorageContainerName);

// Registers the Event Processor Host and starts receiving messages
await eventProcessorHost.RegisterEventProcessorAsync<SimpleEventProcessor>();