您好,登錄后才能下訂單哦!
Message Queue(微軟消息隊列)是在多個不同的應用之間實現相互通信的一種異步傳輸模式,相互通信的應用可以分布于同一臺機器上,也可以分布于相連的網絡空間中的任一位置。它的實現原理是:消息的發送者把自己想要發送的信息放入一個容器中(我們稱之為Message),然后把它保存至一個系統公用空間的消息隊列(Message Queue)中;本地或者是異地的消息接收程序再從該隊列中取出發給它的消息進行處理。
上面一段呢,是百度百科的解釋,我這里就不講理論了,許多博客講的都比我講的好,我也只是照虎畫貓,就講一個簡單的例子,供自己學習使用。如果對各位有幫助那是最好不過了。
首先我們先在自己電腦上安裝MSMQ服務。具體步驟不多講(WIN 7,WIN 8):控制面板--程序和功能--打開或關閉Windows功能--如下圖,然后選中點擊確定,讓他安裝完就可以了。
第二步:打開VS創建項目吧,我這個Demo很簡單。
配置MSMQ路徑,我這里用的是專用隊列,我的路徑如下:@".\private$\panzi";這里呢先不做解釋,這個路徑是專用隊列的路徑方式,.代表本機,當然也可以連接服務器的隊列。
創建MessageQueue對象(引用System.Messaging命名空間)代碼如下:
//判斷隊列是否已經存在,不存在就創建
if (!MessageQueue.Exists(QueuePath))
{
MessageQueue.Create(QueuePath);
}
return new MessageQueue(QueuePath);
調用隊列的Send方法和Receive方法就可以了,是不是很簡單呢。
public void Send(object msg) { var queue = GetBiQueue(); queue.Send(msg); }
public object ReceiveAndRemove() { var queue = GetBiQueue(); var message = queue.Receive(); return message.Body; }
上邊的代碼看不懂沒關系,后邊會有Demo下載,另外這個只是簡單入門小例子,真正項目使用肯定不是這么簡單啦。我們看看運行成果吧
隊列里面已經有一條數據(控制面板-管理工具-計算機管理--消息隊列):
那么我們接收一下這條消息:(這是我發的信息),已經接收到了,那么看看隊列里面還有沒有這條數據呢?再看一下已經沒有了(不截圖了)。如果想讓隊列數據繼續保存用什么方法呢,可以用
queue.Peek(); 這樣,數據能獲取到,而且不會刪除隊列里的數據
好了,一個簡單的MSMQ Demo就完成了,可能講的不是很明白,當然啦,我這個暫時不是教學目的,是自己的個人總結,如果想學習,還是需要看博客園和其他一些大神的博客啦。
下一篇就要介紹一下 WCF如何和MSMQ結合的,不得不說WCF真牛逼。~~
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。