public Publisher(string queueName, string message)//ctor { _rabbitMQService = new RabbitMQService(); using (var connection = _rabbitMQService.GetRabbitMQConnection()) { using (var channel = connection.CreateModel()) //CreateModel() methodu yeni bir channel oluşturur. //channel(session) ile yeni bir kuyruk oluşturulup istenen mesajı bu kanal üzerinden gönderirir. { channel.QueueDeclare(queueName, false, false, false, null); // QueueuDeclare() methodu kuyruk oluşturur. channel.BasicPublish("", queueName, null, Encoding.UTF8.GetBytes(message)); // BasicPublish Kuyrua mesajı gönderiyor ! UTF-8 olarak ! Console.WriteLine($"{queueName} queue'su üzerine ,\"{message}\" mesajı yazıldı."); } } }
public Publisher(string queueName, Person request) { _rabbitMQService = new RabbitMQService(); using (var connection = _rabbitMQService.GetRabbitMQConnection()) { using (var channel = connection.CreateModel()) { channel.QueueDeclare(queueName, false, false, false, null); string message = JsonConvert.SerializeObject(request); var body = Encoding.UTF8.GetBytes(message); channel.BasicPublish("", queueName, null, Encoding.UTF8.GetBytes(message)); Console.WriteLine("{0} queue'su üzerine, \"{1}\" kişisinin mesajı yazıldı.", queueName, request.Name); } } }
private readonly RabbitMQService _rabbitMQService;//Tanıtıldı public Consumer(string queueName) { _rabbitMQService = new RabbitMQService(); // Ram'de nesneyi tanıttı. using (var connection = _rabbitMQService.GetRabbitMQConnection()) { using (var channel = connection.CreateModel()) { var consumer = new EventingBasicConsumer(channel); consumer.Received += (model, ea) => // Received(alıcı) event'i sürekli listen modunda olacaktır. { var body = ea.Body; var message = Encoding.UTF8.GetString(body.ToArray()); Console.WriteLine($"{queueName} isimli queue üzerinden gelen mesaj : \"{message}\" "); }; channel.BasicConsume(queueName, true, consumer); //noAck: True olarak set edildiği taktirde, consumer mesajı aldığı zaman otomatik olarak mesaj Queue’dan silinecektir. //Eğer Queue üzerinden silinmesini istemiyor iseniz, False olarak set etmeniz gerekmektedir. Console.ReadKey(); } } }
public Consumer(string queueName) { _rabbitMQService = new RabbitMQService(); using (var connection = _rabbitMQService.GetRabbitMQConnection()) { using (var channel = connection.CreateModel()) { var consumer = new EventingBasicConsumer(channel); consumer.Received += (model, ea) => { var body = ea.Body.ToArray(); var message = Encoding.UTF8.GetString(body); Person person = JsonConvert.DeserializeObject <Person>(message); Console.WriteLine($" Adı: {person.Name} Soyadı:{person.SurName} [{person.Message}]"); }; channel.BasicConsume(queueName, false, consumer); Console.ReadLine(); } } }