在C#中从IoT Hub接收数据

时间:2017-01-24 04:55:53

标签: c# asp.net azure model-view-controller iot

我的查询

我在从IoT Hub持续接收数据时遇到问题。

我使用iot-hub-csharp-csharp-getstarted作为参考来创建我的ASPNet MVC应用程序

以下是从IoT Hub接收数据的功能

private static async Task ReceiveMessagesFromDeviceAsync(string partition, CancellationToken ct)
    {
        var eventHubReceiver = eventHubClient.GetDefaultConsumerGroup().CreateReceiver(partition, DateTime.UtcNow);
        while (true)
        {
            if (ct.IsCancellationRequested) break;
            EventData eventData = await eventHubReceiver.ReceiveAsync();
            if (eventData == null) continue;

            string data = Encoding.UTF8.GetString(eventData.GetBytes());

            //Console.WriteLine("Message received. Partition: {0} Data: '{1}'", partition, data);

        }
    }

var 字符串数据 中收到的值 但它在一段时间后出现在循环中(而在Console应用程序中将数据发送到物联网中心,它会不断发送数据

通过以下函数调用上述函数

private void SetHubs()
        {
            eventHubClient = EventHubClient.CreateFromConnectionString(connectionString, iotHubD2cEndpoint);
            var d2cPartitions = eventHubClient.GetRuntimeInformation().PartitionIds;
            CancellationTokenSource cts = new CancellationTokenSource();

            var tasks = new List<Task>();
            foreach (string partition in d2cPartitions)
            {
                tasks.Add(ReceiveMessagesFromDeviceAsync(partition, cts.Token));
            }
            //Task.WaitAll(tasks.ToArray());


        }

我的问题

所以在接收MVC应用程序中(使用上面的方法 ReceiveMessagesFromDeviceAsync ,它来自循环(虽然它在内部,而loop ==&gt; while(true)) 只有大约50-70条消息被接收,之后它存在while循环, 我在这里失踪的是什么?

0 个答案:

没有答案