1C_DataBus/1CDataBus/RabbitMQ/RabbitConnection.cs
2025-02-25 10:06:21 +05:00

49 lines
1.6 KiB
C#

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<string>("RabbitMqSettings:HostName"),
//HostName = "astsrvrabbit1",
UserName = _configuration.GetValue<string>("RabbitMqSettings:UserName"),
//UserName = "erp",
Password = _configuration.GetValue<string>("RabbitMqSettings:Password"),
//Password = @"Z!1;Q5#GE4v",
VirtualHost = _configuration.GetValue<string>("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();
}
}
}