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; } }
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); }