Пример #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);
        }
    }
Пример #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);
        }
    }
Пример #3
0
        public void Create_ClientOptionsBuilder()
        {
            var factory = new MqttFactory();
            var builder = factory.CreateClientOptionsBuilder();

            Assert.IsNotNull(builder);
        }
Пример #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);
        }
    }