49 lines
1.7 KiB
C#
49 lines
1.7 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_contracts",
|
|
durable: false,
|
|
exclusive: false,
|
|
autoDelete: false,
|
|
arguments: null);
|
|
var encoded = Encoding.UTF8.GetBytes(body);
|
|
await _channel.BasicPublishAsync(string.Empty, "erp_contracts", encoded);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
_channel.Dispose();
|
|
_connection.Dispose();
|
|
}
|
|
}
|
|
}
|