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); } }; }
public DownloaderBot(IOptions <DownloaderBotSettings> options) { _settings = options.Value; }