public static async Task RunAsync() { var ms = new ClientRetainedMessageHandler(); var options = new ManagedMqttClientOptions { ClientOptions = new MqttClientOptions { ClientId = "MQTTnetManagedClientTest", Credentials = new RandomPassword(), ChannelOptions = new MqttClientTcpOptions { Server = "broker.hivemq.com" } }, AutoReconnectDelay = TimeSpan.FromSeconds(1), Storage = ms }; try { var managedClient = new MqttFactory().CreateManagedMqttClient(); managedClient.ApplicationMessageReceivedAsync += e => { Console.WriteLine(">> RECEIVED: " + e.ApplicationMessage.Topic); return(PlatformAbstractionLayer.CompletedTask); }; await managedClient.StartAsync(options); await managedClient.EnqueueAsync(topic : "Step", payload : "1"); await managedClient.EnqueueAsync(topic : "Step", payload : "2", MqttQualityOfServiceLevel.AtLeastOnce); await managedClient.SubscribeAsync(topic : "xyz", qualityOfServiceLevel : MqttQualityOfServiceLevel.AtMostOnce); await managedClient.SubscribeAsync(topic : "abc", qualityOfServiceLevel : MqttQualityOfServiceLevel.AtMostOnce); await managedClient.EnqueueAsync(topic : "Step", payload : "3"); Console.WriteLine("Managed client started."); Console.ReadLine(); } catch (Exception e) { Console.WriteLine(e); } }