using MQTTnet.Server.Status; using System.Collections.Generic; using System.Threading.Tasks; namespace MQTTnet.Server { public interface IMqttServer : IApplicationMessageReceiver, IApplicationMessagePublisher { bool IsStarted { get; } IMqttServerStartedHandler StartedHandler { get; set; } IMqttServerStoppedHandler StoppedHandler { get; set; } IMqttServerClientConnectedHandler ClientConnectedHandler { get; set; } IMqttServerClientDisconnectedHandler ClientDisconnectedHandler { get; set; } IMqttServerClientSubscribedTopicHandler ClientSubscribedTopicHandler { get; set; } IMqttServerClientUnsubscribedTopicHandler ClientUnsubscribedTopicHandler { get; set; } IMqttServerOptions Options { get; } Task> GetClientStatusAsync(); Task> GetSessionStatusAsync(); Task> GetRetainedApplicationMessagesAsync(); Task ClearRetainedApplicationMessagesAsync(); Task SubscribeAsync(string clientId, ICollection topicFilters); Task UnsubscribeAsync(string clientId, ICollection topicFilters); Task StartAsync(IMqttServerOptions options); Task StopAsync(); } }