Example #1
0
        private void BuildServerOptions()
        {
            try
            {
                var ipAddress      = IPAddress.Parse(mqttConfiguration.BrokerHostName);
                var optionsBuilder = new MqttServerOptionsBuilder();

                if (mqttConfiguration.UseSSL)
                {
                    //// TODO: Implement insert certification
                    optionsBuilder.WithClientCertificate()
                    .WithEncryptionSslProtocol(mqttConfiguration.MqttSslProtocol);
                }

                optionsBuilder.WithDefaultEndpointBoundIPAddress(ipAddress)
                .WithDefaultEndpointPort(mqttConfiguration.BrokerPort)
                .WithConnectionValidator(MQTTConnectionValidator)
                .WithSubscriptionInterceptor(c =>
                {
                    c.AcceptSubscription = true;
                    LogMessage(mqttServiceLogger, c, true);
                })
                .WithApplicationMessageInterceptor(c =>
                {
                    c.AcceptPublish = true;
                    LogMessage(mqttServiceLogger, c);
                });

                mqttServerOptions = optionsBuilder.Build();
            }
            catch (Exception ex)
            {
                mqttServiceLogger.LogError(ex.Message);
                throw;
            }
        }