コード例 #1
0
        public RpcClient(DownloaderBotSettings settings)
        {
            var factory = new ConnectionFactory()
            {
                HostName    = settings.RMQConnectionSettings.HostName,
                Port        = settings.RMQConnectionSettings.Port,
                VirtualHost = settings.RMQConnectionSettings.VirtualHost,
                UserName    = settings.RMQConnectionSettings.UserName,
                Password    = settings.RMQConnectionSettings.Password
            };

            connection     = factory.CreateConnection();
            channel        = connection.CreateModel();
            replyQueueName = channel.QueueDeclare().QueueName;
            consumer       = new EventingBasicConsumer(channel);

            props = channel.CreateBasicProperties();
            var correlationId = Guid.NewGuid().ToString();

            props.CorrelationId = correlationId;
            props.ReplyTo       = replyQueueName;

            consumer.Received += (model, ea) =>
            {
                var body     = ea.Body.ToArray();
                var response = Encoding.UTF8.GetString(body);
                if (ea.BasicProperties.CorrelationId == correlationId)
                {
                    respQueue.Add(response);
                }
            };
        }
コード例 #2
0
 public DownloaderBot(IOptions <DownloaderBotSettings> options)
 {
     _settings = options.Value;
 }