我正在寻找一种解决方案,将数据从 Azure IoT 中心获取到同样托管在 Azure 中的 Web 应用程序的后端,该应用程序是用 ASP.NET 4.6 编写的。最好尽快接收原始 Json 字符串。
我发现其他人建议将 Webhook 或 Azure 函数用于类似目的,但这些解决方案带来的延迟并不是真正可以接受的。最好直接连接到物联网端点并获取每条传入的消息。任何人都可以指出正确的方向吗?
我正在寻找一种解决方案,将数据从 Azure IoT 中心获取到同样托管在 Azure 中的 Web 应用程序的后端,该应用程序是用 ASP.NET 4.6 编写的。最好尽快接收原始 Json 字符串。
我发现其他人建议将 Webhook 或 Azure 函数用于类似目的,但这些解决方案带来的延迟并不是真正可以接受的。最好直接连接到物联网端点并获取每条传入的消息。任何人都可以指出正确的方向吗?
您可以简单地在您的 Web 应用程序中使用 EventHub .NET SDK,连接到 IoT 中心的EventHub 兼容端点并直接使用您的应用程序中的事件。这具有最小的延迟并且不涉及额外的组件。
如何指导(.NET 核心但同样适用于 .NET Framework):https ://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-dotnet-standard-getstarted-send#receive-事件
var eventProcessorHost = new EventProcessorHost(
EventHubName,
PartitionReceiver.DefaultConsumerGroupName,
EventHubConnectionString,
StorageConnectionString,
StorageContainerName);
// Registers the Event Processor Host and starts receiving messages
await eventProcessorHost.RegisterEventProcessorAsync<SimpleEventProcessor>();
Azure SignalR 服务可以帮助将消息广播到 Web 应用实例。
Azure IoT 中心和 Azure SignalR 服务之间没有直接集成。基本上,您可以使用两种模式进行这种集成,例如PULL-PUSH和PUSH-PUSH。
以下屏幕显示了这些集成模式:
请注意,带有 Azure 事件网格的PUSH-PUSH模式适用于订阅者(消费者)对于按顺序处理事件并不重要的解决方案。