Add a method for clearing all retained messages at the server.

This commit is contained in:
Christian Kratky
2018-09-29 11:49:02 +02:00
parent 699cd5fc23
commit 56a1530cee
4 changed files with 19 additions and 0 deletions
+2
View File
@@ -23,5 +23,7 @@ namespace MQTTnet.Server
Task StartAsync(IMqttServerOptions options);
Task StopAsync();
Task ClearRetainedMessagesAsync();
}
}
@@ -84,6 +84,16 @@ namespace MQTTnet.Server
return retainedMessages;
}
public Task ClearMessagesAsync()
{
lock (_messages)
{
_messages.Clear();
}
return _options.Storage.SaveRetainedMessagesAsync(new List<MqttApplicationMessage>());
}
private async Task HandleMessageInternalAsync(string clientId, MqttApplicationMessage applicationMessage)
{
var saveIsRequired = false;
+5
View File
@@ -129,6 +129,11 @@ namespace MQTTnet.Server
}
}
public Task ClearRetainedMessagesAsync()
{
return _retainedMessagesManager?.ClearMessagesAsync();
}
internal void OnClientConnected(string clientId)
{
_logger.Info("Client '{0}': Connected.", clientId);