【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關閉,不然服務器上會有保留的隊列

完成!!!

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