Passes the Endpoint of the client before it disconnectedrelease/3.x.x
@@ -1,4 +1,4 @@ | |||||
using MQTTnet.Adapter; | |||||
using MQTTnet.Adapter; | |||||
using MQTTnet.Diagnostics; | using MQTTnet.Diagnostics; | ||||
using MQTTnet.Exceptions; | using MQTTnet.Exceptions; | ||||
using MQTTnet.Formatter; | using MQTTnet.Formatter; | ||||
@@ -237,11 +237,13 @@ namespace MQTTnet.Server | |||||
} | } | ||||
} | } | ||||
var endpoint = channelAdapter.Endpoint; | |||||
await SafeCleanupChannelAsync(channelAdapter).ConfigureAwait(false); | await SafeCleanupChannelAsync(channelAdapter).ConfigureAwait(false); | ||||
if (clientId != null) | if (clientId != null) | ||||
{ | { | ||||
await _eventDispatcher.SafeNotifyClientDisconnectedAsync(clientId, disconnectType).ConfigureAwait(false); | |||||
await _eventDispatcher.SafeNotifyClientDisconnectedAsync(clientId, disconnectType, endpoint).ConfigureAwait(false); | |||||
} | } | ||||
} | } | ||||
@@ -1,13 +1,14 @@ | |||||
using System; | |||||
using System; | |||||
namespace MQTTnet.Server | namespace MQTTnet.Server | ||||
{ | { | ||||
public class MqttServerClientDisconnectedEventArgs : EventArgs | public class MqttServerClientDisconnectedEventArgs : EventArgs | ||||
{ | { | ||||
public MqttServerClientDisconnectedEventArgs(string clientId, MqttClientDisconnectType disconnectType) | |||||
public MqttServerClientDisconnectedEventArgs(string clientId, MqttClientDisconnectType disconnectType, string endpoint) | |||||
{ | { | ||||
ClientId = clientId ?? throw new ArgumentNullException(nameof(clientId)); | ClientId = clientId ?? throw new ArgumentNullException(nameof(clientId)); | ||||
DisconnectType = disconnectType; | DisconnectType = disconnectType; | ||||
Endpoint = endpoint; | |||||
} | } | ||||
/// <summary> | /// <summary> | ||||
@@ -17,5 +18,7 @@ namespace MQTTnet.Server | |||||
public string ClientId { get; } | public string ClientId { get; } | ||||
public MqttClientDisconnectType DisconnectType { get; } | public MqttClientDisconnectType DisconnectType { get; } | ||||
public string Endpoint { get; } | |||||
} | } | ||||
} | } |
@@ -1,4 +1,4 @@ | |||||
using MQTTnet.Client.Receiving; | |||||
using MQTTnet.Client.Receiving; | |||||
using MQTTnet.Diagnostics; | using MQTTnet.Diagnostics; | ||||
using System; | using System; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
@@ -44,7 +44,7 @@ namespace MQTTnet.Server | |||||
} | } | ||||
} | } | ||||
public async Task SafeNotifyClientDisconnectedAsync(string clientId, MqttClientDisconnectType disconnectType) | |||||
public async Task SafeNotifyClientDisconnectedAsync(string clientId, MqttClientDisconnectType disconnectType, string endpoint) | |||||
{ | { | ||||
try | try | ||||
{ | { | ||||
@@ -54,7 +54,7 @@ namespace MQTTnet.Server | |||||
return; | return; | ||||
} | } | ||||
await handler.HandleClientDisconnectedAsync(new MqttServerClientDisconnectedEventArgs(clientId, disconnectType)).ConfigureAwait(false); | |||||
await handler.HandleClientDisconnectedAsync(new MqttServerClientDisconnectedEventArgs(clientId, disconnectType, endpoint)).ConfigureAwait(false); | |||||
} | } | ||||
catch (Exception exception) | catch (Exception exception) | ||||
{ | { | ||||