您的位置:首页 > 其它

WCF学习总结——WCF消息交换模式

2010-12-29 11:17 393 查看
  WCF客户端与服务器之间是通过消息进行通讯,有必要了解WCF的消息交换模式,以对消息的发送和接受有更直观的理解。

  在WCF中,有三种消息交换模式:数据报模式、请求——响应模式、双工模式。

  1. 数据报模式(One—Way—Calls)

  数据报模式指的是发送端负责把消息发送给对方,并且收到确认消息后,就完成叫互的方式,在这种模式下,发送方唯一能确定的就是消息发送成功,而对于消息是否最终到达服务的终结点,是否被成功处理,发挥的结果如何等都一无所知。

  数据报模式存在以下特点:

  (1) 返回类型只能是void

  (2)不能包含ref或者out类型的参数

  (3)只有客户端发起请求,服务端并不会对请求进行回复。

  设置方法:[OperationContract(IsOneWay=true)]
Void Test();

  2. 请求—响应模式(Request/Reply)

   在请求响应模式中,客户端发送一个消息并且接收一个返回消息来 完成一次交互。在该模式中,消息的发起端必然是客户端,并且从服务端返回只有一条消息。客户端在发送出消息后会阻止当前线程并且等待服务端返回消息。
请求响应模式是缺省的消息交换模式,类似于Http协议中的请求/响应模型,这种消息交换模式是使用最多的一种。

  具有如下特点:

  (1) 调用服务方法后需要等待服务的消息返回;

  (2) 在这种模式下,服务端永远是服务端,客户端就是客户端,职责分明。

   设置方法:[OperationContract]
Void Test();

  3. 双工模式(Duplex)

  在双工模式中,客户端和服务端都可以任意地向对方发送消息,而对方也可以以任意的次序来接收消息。在这种模式下,发送端和接收端的概念变得不再适用,取而代之的是通信的两个端点。

  设置方法:

  Public interface ICallBack

  {

     [OperationContract(IsOneWay=true)]

    Void UpdataInterval(int seconds);

  }

  [ServiceContract(CallbackContract=typeof (ICallBack))]

  Public interface Iservice1

   {

     [OperationContract]

     Void Heartbeat();

  }


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: