【C#语言学习】之基于C#语言的RabbitMq数据传输机制的数据接收

主要记录如何在Visual Studio中用C#语言使用RabbitMQ机制进行数据的接收


首先进行创建一个连接

<span style="font-size:18px;">            var factory = new ConnectionFactory();
            factory.HostName = "127.0.0.1";
            factory.Port = 0000;
            factory.UserName = "test";
            factory.Password = "test";</span>



上面的HostName接的就是你服务器的IP地址,Port为你服务器传输数据的端口,UserNAme和Password都是给你传输数据那端的人定义的,要想接收数据要先从发送数据的人要这些属性。

接下来用factory建立一个connection

<span style="font-size:18px;"> var connection = factory.CreateConnection()</span>

创建完之后用这个connection创建一个通道channel 用来传输数据的通道

var channel = connection.CreateModel()

用这个channel创建一个持久化的序列

channel.QueueDeclare(queue: "ABCDEFG", durable: true, exclusive: false, autoDelete: false, arguments: null);

这里面的queue是给你发送消息的人进行定义的,到时候向他要。
  

 输入1,如果接收一个消息,但是没有应答,则客户端不会收到下一个消息

 channel.BasicQos(0, 1, false);


之后在队列上定义一个消费者
QueueingBasicConsumer consumer = new QueueingBasicConsumer(channel);


 var consumer1 = new EventingBasicConsumer(channel);
 消费队列,并设置应答模式为程序主动应答
channel.BasicConsume(queue: "ABCDEFG", noAck: false, consumer: consumer);
  //阻塞函数,获取队列中的信息
BasicDeliverEventArgs ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue();             
下面是开始进行数据的接收!!!!  
                    while (true)
                    {
                      
                        byte[] bytes = ea.Body;
                        string str = Encoding.UTF8.GetString(bytes);
                        JsonReader reader = new JsonTextReader(new StringReader(str));
                        while (reader.read())
                        {
                          console.writeline(reader.valuetype + "\t\t" + reader.value);
                        }
                        确认回复
                        channel.BasicAck(ea.DeliveryTag, false);
                    }



最好每次用完 channel 和 connection 后都进行 Close关闭,不然服务器上会有保留的队列

完成!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章