Add async handler interfaces for connected and disconnected to allow async code to execute on connect

This commit is contained in:
Dominik Psenner
2019-02-15 15:02:15 +01:00
parent 6c5c9e5bf2
commit a1f414a06d
8 changed files with 129 additions and 10 deletions
@@ -38,9 +38,9 @@ namespace MQTTnet.Extensions.ManagedClient
_mqttClient = mqttClient ?? throw new ArgumentNullException(nameof(mqttClient));
_mqttClient.Connected += OnConnected;
_mqttClient.Disconnected += OnDisconnected;
_mqttClient.ApplicationMessageReceived += OnApplicationMessageReceived;
_mqttClient.UseConnectedHandler(OnConnected);
_mqttClient.UseDisconnectedHandler(OnDisconnected);
_mqttClient.UseReceivedApplicationMessageHandler(OnApplicationMessageReceived);
_logger = logger.CreateChildLogger(nameof(ManagedMqttClient));
}
@@ -415,19 +415,22 @@ namespace MQTTnet.Extensions.ManagedClient
}
}
private void OnApplicationMessageReceived(object sender, MqttApplicationMessageReceivedEventArgs eventArgs)
private Task OnApplicationMessageReceived(MqttApplicationMessageHandlerContext context)
{
ApplicationMessageReceived?.Invoke(this, eventArgs);
ApplicationMessageReceived?.Invoke(this, new MqttApplicationMessageReceivedEventArgs(context.SenderClientId, context.ApplicationMessage));
return Task.FromResult(0);
}
private void OnDisconnected(object sender, MqttClientDisconnectedEventArgs eventArgs)
private Task OnDisconnected(MqttClientDisconnectedEventArgs eventArgs)
{
Disconnected?.Invoke(this, eventArgs);
return Task.FromResult(0);
}
private void OnConnected(object sender, MqttClientConnectedEventArgs eventArgs)
private Task OnConnected(MqttClientConnectedEventArgs eventArgs)
{
Connected?.Invoke(this, eventArgs);
return Task.FromResult(0);
}
private void StartPublishing()