using RabbitMQ.Client; using System.Text; namespace _1CDataBus.RabbitMQ { public class RabbitConnection : IDisposable { private readonly IConnection _connection; private readonly IChannel _channel; private IConfiguration _configuration; public RabbitConnection(IConfiguration configuration) { _configuration = configuration; var factory = new ConnectionFactory { HostName = _configuration.GetValue("RabbitMqSettings:HostName"), //HostName = "astsrvrabbit1", UserName = _configuration.GetValue("RabbitMqSettings:UserName"), //UserName = "erp", Password = _configuration.GetValue("RabbitMqSettings:Password"), //Password = @"Z!1;Q5#GE4v", VirtualHost = _configuration.GetValue("RabbitMqSettings:VirtualHost") //VirtualHost = "erp" }; _connection = factory.CreateConnectionAsync().Result; _channel = _connection.CreateChannelAsync().Result; } public async Task SendMessage(string body) { await _channel.QueueDeclareAsync( queue: "erp_test", durable: false, exclusive: false, autoDelete: false, arguments: null); var encoded = Encoding.UTF8.GetBytes(body); await _channel.BasicPublishAsync(string.Empty, "erp_test", encoded); } public void Dispose() { _channel.Dispose(); _connection.Dispose(); } } }