mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-16 17:23:04 +08:00
Added custom exception for gracefully closed exceptions.
This commit is contained in:
@@ -27,8 +27,10 @@
|
||||
* [Server] Keep alive checking is now suspended while large packages are being received (and thus the client is connected). Keep alive checking continues after a large packet is received completely.
|
||||
* [Server] Rewritten the _ConnectedClients_ API and added new features for disconnecting and Endpoint information (IP etc.).
|
||||
* [Server] Added settings for disabling persistent sessions and defining a max pending messages queue size per session.
|
||||
* [Server] Persistent sessions are disabled by default (BREAKING CHANGE!).
|
||||
* [Server] Added a new interceptor which is invoked before a new message is added to the client queue.
|
||||
* [Server] Added support for Linux servers by dividing IPv4 and IPv6 support and adding new options (BREAKING CHANGE!).
|
||||
* [Server] Gracefully closed connections are no longer reported as warnings.
|
||||
</releaseNotes>
|
||||
<copyright>Copyright Christian Kratky 2016-2018</copyright>
|
||||
<tags>MQTT Message Queue Telemetry Transport MQTTClient MQTTServer Server MQTTBroker Broker NETStandard IoT InternetOfThings Messaging Hardware Arduino Sensor Actuator M2M ESP Smart Home Cities Automation Xamarin</tags>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace MQTTnet.Exceptions
|
||||
{
|
||||
public class MqttCommunicationClosedGracefullyException : MqttCommunicationException
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -76,6 +76,8 @@ namespace MQTTnet.Implementations
|
||||
await sslStream.AuthenticateAsServerAsync(_tlsCertificate, false, SslProtocols.Tls12, false).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
_logger.Verbose($"Client '{clientSocket.RemoteEndPoint}' accepted by TCP listener '{_socket.LocalEndPoint}, {_addressFamily}'.");
|
||||
|
||||
var clientAdapter = new MqttChannelAdapter(new MqttTcpChannel(clientSocket, null), new MqttPacketSerializer(), _logger);
|
||||
ClientAccepted?.Invoke(this, new MqttServerAdapterClientAcceptedEventArgs(clientAdapter));
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace MQTTnet.Internal
|
||||
{
|
||||
public static void ThrowGracefulSocketClose()
|
||||
{
|
||||
throw new MqttCommunicationException("Connection gracefully closed from the remote party.");
|
||||
throw new MqttCommunicationClosedGracefullyException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,7 +100,14 @@ namespace MQTTnet.Server
|
||||
{
|
||||
if (exception is MqttCommunicationException)
|
||||
{
|
||||
_logger.Warning(exception, "Client '{0}': Communication exception while receiving client packets.", ClientId);
|
||||
if (exception is MqttCommunicationClosedGracefullyException)
|
||||
{
|
||||
_logger.Verbose("Client '{0}': Connection closed gracefully.", ClientId); ;
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Warning(exception, "Client '{0}': Communication exception while receiving client packets.", ClientId);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace MQTTnet.TestApp.NetCore
|
||||
{
|
||||
ChannelOptions = new MqttClientTcpOptions
|
||||
{
|
||||
Server = "localhost"
|
||||
Server = "127.0.0.1"
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user