Esempio n. 1
0
        public Task ValidateConnectionAsync(MqttConnectionValidatorContext context)
        {
            try
            {
                var pythonContext = new PythonDictionary
                {
                    { "endpoint", context.Endpoint },
                    { "is_secure_connection", context.IsSecureConnection },
                    { "client_id", context.ClientId },
                    { "username", context.Username },
                    { "password", context.Password },
                    { "raw_password", new Bytes(context.RawPassword ?? new byte[0]) },
                    { "clean_session", context.CleanSession },
                    { "authentication_method", context.AuthenticationMethod },
                    { "authentication_data", new Bytes(context.AuthenticationData ?? new byte[0]) },

                    { "result", PythonConvert.Pythonfy(context.ReasonCode) }
                };

                _pythonScriptHostService.InvokeOptionalFunction("on_validate_client_connection", pythonContext);

                context.ReasonCode = PythonConvert.ParseEnum <MqttConnectReasonCode>((string)pythonContext["result"]);
            }
            catch (Exception exception)
            {
                _logger.LogError(exception, "Error while validating client connection.");

                context.ReasonCode = MqttConnectReasonCode.UnspecifiedError;
            }

            return(Task.CompletedTask);
        }
        public Task ValidateConnectionAsync(MqttConnectionValidatorContext context)
        {
            try
            {
                var pythonContext = new PythonDictionary
                {
                    { "client_id", context.ClientId },
                    { "endpoint", context.Endpoint },
                    { "is_secure_connection", context.IsSecureConnection },
                    { "username", context.Username },
                    { "password", context.Password },
                    { "result", PythonConvert.Pythonfy(context.ReturnCode) }
                };

                _pythonScriptHostService.InvokeOptionalFunction("on_validate_client_connection", pythonContext);

                context.ReturnCode = PythonConvert.ParseEnum <MqttConnectReturnCode>((string)pythonContext["result"]);
            }
            catch (Exception exception)
            {
                _logger.LogError(exception, "Error while validating client connection.");
            }

            return(Task.CompletedTask);
        }