diff --git a/Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpChannel.Uwp.cs b/Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpChannel.Uwp.cs index 41e1d54..19d5824 100644 --- a/Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpChannel.Uwp.cs +++ b/Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpChannel.Uwp.cs @@ -49,6 +49,7 @@ namespace MQTTnet.Implementations { _socket = new StreamSocket(); _socket.Control.NoDelay = true; + _socket.Control.KeepAlive = true; } if (!_options.TlsOptions.UseTls) diff --git a/Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpServerAdapter.Uwp.cs b/Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpServerAdapter.Uwp.cs index aba092a..b2c3110 100644 --- a/Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpServerAdapter.Uwp.cs +++ b/Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpServerAdapter.Uwp.cs @@ -33,9 +33,12 @@ namespace MQTTnet.Implementations // This also affects the client sockets. _defaultEndpointSocket.Control.NoDelay = true; + _defaultEndpointSocket.Control.KeepAlive = true; + _defaultEndpointSocket.Control.QualityOfService = SocketQualityOfService.LowLatency; + _defaultEndpointSocket.ConnectionReceived += AcceptDefaultEndpointConnectionsAsync; await _defaultEndpointSocket.BindServiceNameAsync(options.GetDefaultEndpointPort().ToString(), SocketProtectionLevel.PlainSocket); - _defaultEndpointSocket.ConnectionReceived += AcceptDefaultEndpointConnectionsAsync; + } if (options.TlsEndpointOptions.IsEnabled) @@ -59,7 +62,7 @@ namespace MQTTnet.Implementations public void Dispose() { - StopAsync(); + StopAsync().GetAwaiter().GetResult(); } private void AcceptDefaultEndpointConnectionsAsync(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args) diff --git a/Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpServerAdapter.cs b/Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpServerAdapter.cs index 56457b5..f1d349d 100644 --- a/Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpServerAdapter.cs +++ b/Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpServerAdapter.cs @@ -88,7 +88,7 @@ namespace MQTTnet.Implementations public void Dispose() { - StopAsync(); + StopAsync().GetAwaiter().GetResult(); } private async Task AcceptDefaultEndpointConnectionsAsync(CancellationToken cancellationToken)