Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
    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);
        }
    }
Exemplo n.º 4
0
    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);
        }
    }