Beispiel #1
0
        public MqttTcpServerListener(
            AddressFamily addressFamily,
            MqttServerTcpEndpointBaseOptions options,
            X509Certificate2 tlsCertificate,
            IMqttNetChildLogger logger)
        {
            _addressFamily  = addressFamily;
            _options        = options;
            _tlsCertificate = tlsCertificate;
            _logger         = logger.CreateChildLogger(nameof(MqttTcpServerListener));

            if (_options is MqttServerTlsTcpEndpointOptions tlsOptions)
            {
                _tlsOptions = tlsOptions;
            }
        }
        public MqttTcpServerListener(
            AddressFamily addressFamily,
            MqttServerOptions serverOptions,
            MqttServerTcpEndpointBaseOptions tcpEndpointOptions,
            X509Certificate2 tlsCertificate,
            IMqttNetLogger logger)
        {
            _addressFamily  = addressFamily;
            _serverOptions  = serverOptions ?? throw new ArgumentNullException(nameof(serverOptions));
            _options        = tcpEndpointOptions ?? throw new ArgumentNullException(nameof(tcpEndpointOptions));
            _tlsCertificate = tlsCertificate;
            _rootLogger     = logger;
            _logger         = logger.WithSource(nameof(MqttTcpServerListener));

            if (_options is MqttServerTlsTcpEndpointOptions tlsOptions)
            {
                _tlsOptions = tlsOptions;
            }
        }
        public MqttTcpServerListener(
            AddressFamily addressFamily,
            MqttServerTcpEndpointBaseOptions options,
            X509Certificate2 tlsCertificate,
            TimeSpan communicationTimeout,
            CancellationToken cancellationToken,
            IMqttNetChildLogger logger)
        {
            _addressFamily        = addressFamily;
            _options              = options;
            _tlsCertificate       = tlsCertificate;
            _communicationTimeout = communicationTimeout;
            _cancellationToken    = cancellationToken;
            _logger = logger.CreateChildLogger(nameof(MqttTcpServerListener));

            if (_options is MqttServerTlsTcpEndpointOptions tlsOptions)
            {
                _tlsOptions = tlsOptions;
            }
        }
Beispiel #4
0
    public override bool Loaded()
    {
        {
            var mqttServer = new MqttFactory().CreateMqttServer();
            var tlsoptions = new MqttServerTlsTcpEndpointOptions()
            {
                RemoteCertificateValidationCallback =
                    (sender, certificate, chain, errors) => { return(true); },
                SslProtocol = SslProtocols.Tls12,
                CheckCertificateRevocation = false,
                ClientCertificateRequired  = true,
                Certificate = new byte[0]
            };

            var options = new MqttServerOptionsBuilder()
                          //.WithEncryptedEndpointPort(1883)
                          //.WithEncryptionSslProtocol(SslProtocols.Tls12)
                          //.WithRemoteCertificateValidationCallback((sender, certificate, chain, errors) => { return true; })
                          .Build();

            //options.TlsEndpointOptions.ClientCertificateRequired = true;
            //options.TlsEndpointOptions.CheckCertificateRevocation = false;

            mqttServer.StartAsync(options);
            mqttServer.ApplicationMessageReceivedHandler = new MqttApplicationMessageReceivedHandlerDelegate(e =>
            {
                Console.WriteLine("### RECEIVED APPLICATION MESSAGE ###");
                Console.WriteLine($"+ Topic = {e.ApplicationMessage.Topic}");
                Console.WriteLine($"+ Payload = {Encoding.UTF8.GetString(e.ApplicationMessage.Payload)}");
                Console.WriteLine($"+ QoS = {e.ApplicationMessage.QualityOfServiceLevel}");
                Console.WriteLine($"+ Retain = {e.ApplicationMessage.Retain}");
                Console.WriteLine();
            });

            mqttServer.ClientConnectedHandler = new MqttServerClientConnectedHandlerDelegate(a =>
            {
                Console.WriteLine("### CLIENT CONNECTED ###");
                Console.WriteLine(a.ClientId);
            });
        }


        Task.Run(() => {
            try
            {
                UTM.confighardware("com8");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            Console.ForegroundColor = ConsoleColor.White;
        });

        //UTM.test();

        /*
         * UTM.StartMQTT(clientid, @"C:\Users\michael\Desktop\Hex\laam-mqtt-control\Hardware\pi_zero\certs\ca.crt",
         *  @"C:\Users\michael\Desktop\Hex\laam-mqtt-control\Hardware\pi_zero\certs\client.crt",
         *  @"C:\Users\michael\Desktop\Hex\laam-mqtt-control\Hardware\pi_zero\certs\client.key");
         */
        if (UTM.MQTTClient != null)
        {
            UTM.MQTTClient.ApplicationMessageReceivedHandler = new MqttApplicationMessageReceivedHandlerDelegate(e =>
            {
                Console.WriteLine("### RECEIVED APPLICATION MESSAGE ###");
                Console.WriteLine($"+ Topic = {e.ApplicationMessage.Topic}");
                Console.WriteLine($"+ Payload = {Encoding.UTF8.GetString(e.ApplicationMessage.Payload)}");
                Console.WriteLine($"+ QoS = {e.ApplicationMessage.QualityOfServiceLevel}");
                Console.WriteLine($"+ Retain = {e.ApplicationMessage.Retain}");

                var json = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);

                var obj = JsonConvert.DeserializeObject <JObject>(json);

                var item = obj?["telemetry"]?["altitude"];
            });
        }

        return(true);
    }