コード例 #1
0
        public BrokerConsumerService(
            ILogger <BrokerConsumerService> logger,
            IOptions <RabbitMQInfo> rabbitInfo,
            IOptions <StockQueues> stockQueue,
            IConfiguration configuration,
            IBrokerService brokerService)
        {
            _rabbitInfo = rabbitInfo.Value;
            _stockQueue = stockQueue.Value;

            _connectionFactory = new ConnectionFactory
            {
                HostName = _rabbitInfo.HostName,
                UserName = _rabbitInfo.UserName,
                Password = _rabbitInfo.Password
            };

            _connection = _connectionFactory.CreateConnection();

            _configuration = configuration;
            _brokerService = brokerService;


            _stockApi = _configuration.GetSection("StockApi").Value;
        }
コード例 #2
0
        /// <summary>
        /// Constructor de la clase que configura los datos necesarios para conectarse con rabbit
        /// </summary>
        /// <param name="ampOptionsSnapshot">Opciones de configuracion para Rabbit</param>
        public RabbitMQService(IOptions <RabbitMQInfo> ampOptionsSnapshot, IConfiguration configuration)
        {
            _configuration = configuration;

            IDictionary environmentVariables = Environment.GetEnvironmentVariables();

            if (environmentVariables.Contains("RabbitQueueName"))
            {
                queueName = environmentVariables["RabbitQueueName"] as string;
            }
            else
            {
                queueName = _configuration["RabbitQueueName"];
            }

            amqpInfo = ampOptionsSnapshot.Value;

            connectionFactory = new ConnectionFactory
            {
                UserName    = amqpInfo.UsernameRabbitMq,
                Password    = amqpInfo.PasswordRabbitMq,
                VirtualHost = amqpInfo.VirtualHostRabbitMq,
                HostName    = amqpInfo.HostNameRabbitMq,
                Uri         = new Uri(amqpInfo.UriRabbitMq)
            };
        }
コード例 #3
0
        /// <summary>
        /// Constructor de la clase que configura los datos necesarios para conectarse con rabbit
        /// </summary>
        /// <param name="ampOptionsSnapshot">Opciones de configuracion para Rabbit</param>
        public RabbitMQService(IOptions <RabbitMQInfo> ampOptionsSnapshot)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json");

            IConfigurationRoot Configuration        = builder.Build();
            IDictionary        environmentVariables = Environment.GetEnvironmentVariables();

            if (environmentVariables.Contains("RabbitQueueName"))
            {
                queueName = environmentVariables["RabbitQueueName"] as string;
            }
            else
            {
                queueName = Configuration["RabbitQueueName"];
            }

            amqpInfo = ampOptionsSnapshot.Value;

            connectionFactory = new ConnectionFactory
            {
                UserName    = amqpInfo.UsernameRabbitMq,
                Password    = amqpInfo.PasswordRabbitMq,
                VirtualHost = amqpInfo.VirtualHostRabbitMq,
                HostName    = amqpInfo.HostNameRabbitMq,
                Uri         = new Uri(amqpInfo.UriRabbitMq)
            };

            connection = connectionFactory.CreateConnection();
        }
コード例 #4
0
        public ChatHubService(IServiceProvider serviceProvider,
                              IBrokerProducerService brokerProducerService,
                              IOptions <RabbitMQInfo> rabbitInfo,
                              IOptions <StockQueues> stockQueues
                              )
        {
            _serviceProvider       = serviceProvider;
            _brokerProducerService = brokerProducerService;
            _rabbitInfo            = rabbitInfo.Value;
            _stockQueues           = stockQueues.Value;

            _brokerProducerService.QueueCallBack += async(o, e) => {
                await SendMessage(BOT_USER_NAME, e.StockInfo);
            };
        }
コード例 #5
0
        public BrokerProducerService(
            ILogger <BrokerProducerService> logger,
            IOptions <RabbitMQInfo> rabbitInfo
            )
        {
            _logger     = logger;
            _rabbitInfo = rabbitInfo.Value;

            _connectionFactory = new ConnectionFactory
            {
                HostName = _rabbitInfo.HostName,
                UserName = _rabbitInfo.UserName,
                Password = _rabbitInfo.Password
            };

            _connection    = _connectionFactory.CreateConnection();
            _channel       = _connection.CreateModel();
            _callbackQueue = _channel.QueueDeclare().QueueName;
            _consumer      = new EventingBasicConsumer(_channel);

            _properties = _channel.CreateBasicProperties();

            RegisterRabbitConfig();
        }