mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-30 02:38:53 +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] 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] 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] 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 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] 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>
|
</releaseNotes>
|
||||||
<copyright>Copyright Christian Kratky 2016-2018</copyright>
|
<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>
|
<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);
|
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);
|
var clientAdapter = new MqttChannelAdapter(new MqttTcpChannel(clientSocket, null), new MqttPacketSerializer(), _logger);
|
||||||
ClientAccepted?.Invoke(this, new MqttServerAdapterClientAcceptedEventArgs(clientAdapter));
|
ClientAccepted?.Invoke(this, new MqttServerAdapterClientAcceptedEventArgs(clientAdapter));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ namespace MQTTnet.Internal
|
|||||||
{
|
{
|
||||||
public static void ThrowGracefulSocketClose()
|
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)
|
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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace MQTTnet.TestApp.NetCore
|
|||||||
{
|
{
|
||||||
ChannelOptions = new MqttClientTcpOptions
|
ChannelOptions = new MqttClientTcpOptions
|
||||||
{
|
{
|
||||||
Server = "localhost"
|
Server = "127.0.0.1"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user