본문으로 바로가기

C# RabbitMQ 연동하기[Consumer]

category C# 2021. 1. 12. 10:00
반응형

1. C# 자신의 프로젝트 오른쪽 클릭

2. Nuget 패키지 관리 클릭

3. 찾아보기 탭에서 RabbitMQ 검색

4. RabbitMQ.Client 설치 후 RabbitMQ 기본 소스 적용

 

 

C# 윈폼을 사용하여 코드를 작성하였으며,

RabbitMQ 사용하여(토픽)을 사용하여 메시지 생성(Produce) 및 소비(Consumer)를 구현하도록 하겠습니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using RabbitMQ.Client;
using RabbitMQ.Client.Events;

namespace Vpp_THSensor.MessageBorker
{
    class Receive
    {
        public String MqReceive()
        {
            String message;
            String Topic_name;
            //delegate void  Consumers(IModel Model, BasicDeliverEventArgs EA );
            ConnectionFactory factory = new ConnectionFactory()
            {
                HostName = "localhost",
                Port = port,
                UserName = "guest",
                Password = "guest"
            };

            IConnection connection = factory.CreateConnection();
            IModel channel = connection.CreateModel();


            channel.ExchangeDeclare(type: "topic",
                                 durable: false,
                                 exchange: "test",
                                 autoDelete: false,
                                 arguments: null
                                 );



            Topic_name = channel.QueueDeclare().QueueName;
            channel.QueueBind(queue: channel.QueueDeclare().QueueName,
                              routingKey: "#",
                              exchange: "test"
                                    );



            EventingBasicConsumer consumer = new EventingBasicConsumer(channel);

            //consumer.Received += (model)  
            consumer.Received += (model, ea) =>
            {

                byte[] body = ea.Body.ToArray();
                message = Encoding.UTF8.GetString(body);
                String routingKey = ea.RoutingKey;
                //Sensor.EtcVar.Messa = message;
              
            };
            channel.BasicConsume(queue: Topic_name,
                                 autoAck: true,
                                 consumer: consumer);

            return message
        }

 

 

[C#] - C# RabbitMQ 연동 기본 소스[Produce]

 

C# RabbitMQ 연동 기본 소스[Produce]

1. C# 자신의 프로젝트 오른쪽 클릭 2. Nuget 패키지 관리 클릭 3. 찾아보기 탭에서 RabbitMQ 검색 4. RabbitMQ.Client 설치 후 RabbitMQ 기본 소스 적용 C# 윈폼을 사용하여 코드를 작성하였으며, RabbitMQ 사용..

dodo1054.tistory.com

 

반응형