예제 #1
0
 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ı.");
         }
     }
 }
예제 #2
0
        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);
                }
            }
        }
예제 #3
0
 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();
         }
     }
 }
예제 #4
0
        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();
                }
            }
        }