public static async Task Inspect_Outgoing_Package() { /* * This sample covers the inspection of outgoing packages from the client. */ var mqttFactory = new MqttFactory(); using (var mqttClient = mqttFactory.CreateMqttClient()) { var mqttClientOptions = mqttFactory.CreateClientOptionsBuilder() .WithTcpServer("broker.hivemq.com") .Build(); mqttClient.InspectPackage += OnInspectPackage; await mqttClient.ConnectAsync(mqttClientOptions, CancellationToken.None); Console.WriteLine("MQTT client is connected."); var mqttClientDisconnectOptions = mqttFactory.CreateClientDisconnectOptionsBuilder() .Build(); await mqttClient.DisconnectAsync(mqttClientDisconnectOptions, CancellationToken.None); } }
public static async Task Create_Custom_Logger() { /* * This sample covers the creation of a custom logger which can be used to forward MQTTnet log messages * to other loggers like Microsoft logger or Serilog or log4net etc. */ var mqttFactory = new MqttFactory(new MyLogger()); var mqttClientOptions = mqttFactory.CreateClientOptionsBuilder() .WithTcpServer("broker.hivemq.com") .Build(); using (var mqttClient = mqttFactory.CreateMqttClient()) { await mqttClient.ConnectAsync(mqttClientOptions, CancellationToken.None); Console.WriteLine("MQTT client is connected."); var mqttClientDisconnectOptions = mqttFactory.CreateClientDisconnectOptionsBuilder() .Build(); await mqttClient.DisconnectAsync(mqttClientDisconnectOptions, CancellationToken.None); } }
public static async Task Connect_Client() { /* * This sample creates a simple MQTT client and connects to a public broker. * * Always dispose the client when it is no longer used. * The default version of MQTT is 3.1.1. */ var mqttFactory = new MqttFactory(); using (var mqttClient = mqttFactory.CreateMqttClient()) { // Use builder classes where possible in this project. var mqttClientOptions = new MqttClientOptionsBuilder().WithTcpServer("broker.hivemq.com").Build(); // This will throw an exception if the server is not available. // The result from this message returns additional data which was sent // from the server. Please refer to the MQTT protocol specification for details. var response = await mqttClient.ConnectAsync(mqttClientOptions, CancellationToken.None); Console.WriteLine("The MQTT client is connected."); response.DumpToConsole(); // Send a clean disconnect to the server by calling _DisconnectAsync_. Without this the TCP connection // gets dropped and the server will handle this as a non clean disconnect (see MQTT spec for details). var mqttClientDisconnectOptions = mqttFactory.CreateClientDisconnectOptionsBuilder().Build(); await mqttClient.DisconnectAsync(mqttClientDisconnectOptions, CancellationToken.None); } }
public static async Task Use_Event_Logger() { /* * This sample shows how to get logs from the library. * * ATTENTION: Only use the logger for debugging etc. The performance is heavily decreased when a logger is used. */ // The logger ID is optional but can be set do distinguish different logger instances. var mqttEventLogger = new MqttNetEventLogger("MyCustomLogger"); mqttEventLogger.LogMessagePublished += (sender, args) => { var output = new StringBuilder(); output.AppendLine($">> [{args.LogMessage.Timestamp:O}] [{args.LogMessage.ThreadId}] [{args.LogMessage.Source}] [{args.LogMessage.Level}]: {args.LogMessage.Message}"); if (args.LogMessage.Exception != null) { output.AppendLine(args.LogMessage.Exception.ToString()); } Console.Write(output); }; var mqttFactory = new MqttFactory(mqttEventLogger); var mqttClientOptions = mqttFactory.CreateClientOptionsBuilder() .WithTcpServer("broker.hivemq.com") .Build(); using (var mqttClient = mqttFactory.CreateMqttClient()) { await mqttClient.ConnectAsync(mqttClientOptions, CancellationToken.None); Console.WriteLine("MQTT client is connected."); var mqttClientDisconnectOptions = mqttFactory.CreateClientDisconnectOptionsBuilder() .Build(); await mqttClient.DisconnectAsync(mqttClientDisconnectOptions, CancellationToken.None); } }