|
在之前的兩篇文章中,主要介紹了RabbitMQ環境配置,簡單示例的編寫。今天將會介紹如何使用WCF將RabbitMQ列隊以服務的方式進行發布。
注:因為RabbitMQ的官方.NET客戶端中包括了WCF的SAMPLE代碼演示,很適合初學者,所以我就偷了個懶,直接對照它的SAMPLE來說明了,算是借花獻佛吧,呵呵。首先我們下載相應源碼(基于.NET 3.0),本文主要對該源碼包中的代碼進行講解,鏈接如下:
Binary, compiled for .NET 3.0 and newer (zip) - includes example code, the WCF binding and WCF examples
當然官方還提供了基本.NET 2.0 版本的示例版本,但其中只是一些簡單的示例,并不包括WCF部分,這里只發個鏈接,感興趣的朋友可自行研究。
Binary, compiled for .NET 2.0 (zip) - includes example code
下載基于.NET 3.0的版本源碼之后,解壓其中的projects/examples/wcf目錄,可看到如下的項目: 幾個文件夾分別對應如下應用場景:
OneWay: 單向通信(無返回值)
TwoWay: 雙向通信(請求/響應)
Session:會話方式
Duplex: 雙向通信(可以指定一個Callback回調函數)
OneWay
在OneWayTest示例中,演示了插入日志數據,因為日志操作一般只是單純的寫入操作,不考慮返回值,所以使用OneWay方式。下面是其WCF接口聲明和實例代碼,如下:

public interface ILogServiceContract
{
[OperationContract(IsOneWay=true)]
void Log(LogData entry);
}
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class LogService : ILogServiceContract
{
public int m_i;
public void Log(LogData entry)
{
Util.WriteLine(ConsoleColor.Magenta, " [SVC] {3} [{0,-6}] {1, 12}: {2}", entry.Level, entry.TimeStamp, entry.Message, m_i++);
}
}
NET技術:NET下RabbitMQ實踐 [WCF發布篇],轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。