在之前的两篇文章中,主要介绍了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目录,可看到如下的项目:
    NET下RabbitMQ实践[WCF发布篇]
    
     
    几个文件夹分别对应如下应用场景:
    OneWay: 单向通信(无返回值)
    TwoWay: 双向通信(请求/响应)
    Session:会话方式
    Duplex: 双向通信(可以指定一个Callback回调函数)
   
   

    下面逐一进行介绍:

  

   OneWay  
    在OneWayTest示例中,演示了插入日志数据,因为日志操作一般只是单纯的写入操作,不考虑返回值,所以使用OneWay方式。
   
   下面是其WCF接口声明和实例代码,如下:  
   
    [ServiceContract]
    
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++);
        }
    }

相关文章:

  • 2022-02-15
  • 2021-11-12
  • 2021-10-02
  • 2021-12-02
  • 2021-10-09
  • 2021-11-17
猜你喜欢
  • 2021-04-09
  • 2021-05-29
  • 2021-12-21
  • 2021-07-12
  • 2022-12-23
相关资源
相似解决方案