C# 在';Microsoft.Azure.Devices.Client';消费互联网?
我正在物联网设备上使用Azure SDK。我所依赖的方法之一是C# 在';Microsoft.Azure.Devices.Client';消费互联网?,c#,azure,azure-iot-hub,C#,Azure,Azure Iot Hub,我正在物联网设备上使用Azure SDK。我所依赖的方法之一是 public Task<Message> ReceiveAsync(); 在这个班下 public sealed class DeviceClient : IDisposable 我在while循环中连续调用这个方法,如下所示 while (true) { var receivedMessage = await _deviceClient.ReceiveAsyn
public Task<Message> ReceiveAsync();
在这个班下
public sealed class DeviceClient : IDisposable
我在while循环中连续调用这个方法,如下所示
while (true)
{
var receivedMessage = await _deviceClient.ReceiveAsync(TimeSpan.FromSeconds(3)).ConfigureAwait(false);
if (receivedMessage != null)
{
//Do staff
}
}
我的问题是:即使
receivedMessage
始终显示空值,这是否会占用internet配额?在源代码中,您会发现三个处理程序:
HttpTransportHandler
MqttTransportHandler
AmqpTransportHandler
ReceiveAsync()
发出GET请求,从而消耗网络流量
MQTT处理程序在TCP或WebSocket上运行,其中可能涉及keepalive流量。但是,由于这种通信是双向的,因此发生的大多数通信都涉及实际的消息传递ReceiveAsync()
只是从内部接收队列(如果有)获取第一条消息,或者等待消息到达,它不会轮询
AMPQ处理程序也在消息队列上运行,我不太清楚
ReceiveAsync()
是否最终会产生网络流量 通过源代码挖掘,您将发现三个处理程序:
HttpTransportHandler
MqttTransportHandler
AmqpTransportHandler
ReceiveAsync()
发出GET请求,从而消耗网络流量
MQTT处理程序在TCP或WebSocket上运行,其中可能涉及keepalive流量。但是,由于这种通信是双向的,因此发生的大多数通信都涉及实际的消息传递ReceiveAsync()
只是从内部接收队列(如果有)获取第一条消息,或者等待消息到达,它不会轮询
AMPQ处理程序也在消息队列上运行,我不太清楚
ReceiveAsync()
是否最终会产生网络流量 完美,如何轻松衡量每一个消费量?完美,如何轻松衡量每一个消费量?
while (true)
{
var receivedMessage = await _deviceClient.ReceiveAsync(TimeSpan.FromSeconds(3)).ConfigureAwait(false);
if (receivedMessage != null)
{
//Do staff
}
}