Remove batch sending of messages to prevent message reordering and several required awaits.

This commit is contained in:
Christian Kratky
2018-06-15 00:19:51 +02:00
parent 26eed30dbf
commit 6192685671
14 changed files with 106 additions and 127 deletions
@@ -21,6 +21,6 @@ namespace MQTTnet.Extensions.ManagedClient
Task SubscribeAsync(IEnumerable<TopicFilter> topicFilters);
Task UnsubscribeAsync(IEnumerable<string> topics);
Task PublishAsync(IEnumerable<ManagedMqttApplicationMessage> applicationMessages);
Task PublishAsync(ManagedMqttApplicationMessage applicationMessages);
}
}
@@ -99,27 +99,23 @@ namespace MQTTnet.Extensions.ManagedClient
return Task.FromResult(0);
}
public Task PublishAsync(IEnumerable<MqttApplicationMessage> applicationMessages)
public Task PublishAsync(MqttApplicationMessage applicationMessage)
{
if (applicationMessages == null) throw new ArgumentNullException(nameof(applicationMessages));
if (applicationMessage == null) throw new ArgumentNullException(nameof(applicationMessage));
return PublishAsync(applicationMessages.Select(m =>
new ManagedMqttApplicationMessageBuilder().WithApplicationMessage(m).Build()));
return PublishAsync(new ManagedMqttApplicationMessageBuilder().WithApplicationMessage(applicationMessage).Build());
}
public async Task PublishAsync(IEnumerable<ManagedMqttApplicationMessage> applicationMessages)
public async Task PublishAsync(ManagedMqttApplicationMessage applicationMessage)
{
if (applicationMessages == null) throw new ArgumentNullException(nameof(applicationMessages));
if (applicationMessage == null) throw new ArgumentNullException(nameof(applicationMessage));
foreach (var applicationMessage in applicationMessages)
if (_storageManager != null)
{
if (_storageManager != null)
{
await _storageManager.AddAsync(applicationMessage).ConfigureAwait(false);
}
_messageQueue.Add(applicationMessage);
await _storageManager.AddAsync(applicationMessage).ConfigureAwait(false);
}
_messageQueue.Add(applicationMessage);
}
public async Task SubscribeAsync(IEnumerable<TopicFilter> topicFilters)