Remove timeout from send method.

This commit is contained in:
Christian
2020-12-14 21:17:11 +01:00
parent f92cfcd293
commit 1f78a92c4d
18 changed files with 83 additions and 83 deletions
+10 -9
View File
@@ -100,7 +100,7 @@ namespace MQTTnet.Server
await _channelAdapter.SendPacketAsync(new MqttDisconnectPacket
{
ReasonCode = reason
}, _serverOptions.DefaultCommunicationTimeout, CancellationToken.None).ConfigureAwait(false);
}, CancellationToken.None).ConfigureAwait(false);
}
catch (Exception exception)
{
@@ -485,16 +485,17 @@ namespace MQTTnet.Server
}
}
async Task SendAsync(MqttBasePacket packet, CancellationToken cancellationToken)
Task SendAsync(MqttBasePacket packet, CancellationToken cancellationToken)
{
await _channelAdapter.SendPacketAsync(packet, _serverOptions.DefaultCommunicationTimeout, cancellationToken).ConfigureAwait(false);
Interlocked.Increment(ref _receivedPacketsCount);
if (packet is MqttPublishPacket)
return _channelAdapter.SendPacketAsync(packet, cancellationToken).ContinueWith(task =>
{
Interlocked.Increment(ref _receivedApplicationMessagesCount);
}
Interlocked.Increment(ref _receivedPacketsCount);
if (packet is MqttPublishPacket)
{
Interlocked.Increment(ref _receivedApplicationMessagesCount);
}
}, cancellationToken);
}
}
}
@@ -18,7 +18,7 @@ namespace MQTTnet.Server
{
public sealed class MqttClientSessionsManager : IDisposable
{
readonly BlockingCollection<MqttEnqueuedApplicationMessage> _messageQueue = new BlockingCollection<MqttEnqueuedApplicationMessage>();
readonly BlockingCollection<MqttPendingApplicationMessage> _messageQueue = new BlockingCollection<MqttPendingApplicationMessage>();
readonly object _createConnectionSyncRoot = new object();
readonly Dictionary<string, MqttClientConnection> _connections = new Dictionary<string, MqttClientConnection>();
@@ -92,7 +92,7 @@ namespace MQTTnet.Server
// Send failure response here without preparing a session. The result for a successful connect
// will be sent from the session itself.
var connAckPacket = channelAdapter.PacketFormatterAdapter.DataConverter.CreateConnAckPacket(connectionValidatorContext);
await channelAdapter.SendPacketAsync(connAckPacket, _options.DefaultCommunicationTimeout, cancellationToken).ConfigureAwait(false);
await channelAdapter.SendPacketAsync(connAckPacket, cancellationToken).ConfigureAwait(false);
return;
}
@@ -177,7 +177,7 @@ namespace MQTTnet.Server
{
if (applicationMessage == null) throw new ArgumentNullException(nameof(applicationMessage));
_messageQueue.Add(new MqttEnqueuedApplicationMessage(applicationMessage, sender));
_messageQueue.Add(new MqttPendingApplicationMessage(applicationMessage, sender));
}
public Task SubscribeAsync(string clientId, ICollection<MqttTopicFilter> topicFilters)
@@ -273,7 +273,7 @@ namespace MQTTnet.Server
{
cancellationToken.ThrowIfCancellationRequested();
MqttEnqueuedApplicationMessage queuedApplicationMessage;
MqttPendingApplicationMessage queuedApplicationMessage;
try
{
queuedApplicationMessage = _messageQueue.Take(cancellationToken);
@@ -1,8 +1,8 @@
namespace MQTTnet.Server
{
public class MqttEnqueuedApplicationMessage
public sealed class MqttPendingApplicationMessage
{
public MqttEnqueuedApplicationMessage(MqttApplicationMessage applicationMessage, MqttClientConnection sender)
public MqttPendingApplicationMessage(MqttApplicationMessage applicationMessage, MqttClientConnection sender)
{
Sender = sender;
ApplicationMessage = applicationMessage;