zoukankan      html  css  js  c++  java
  • WCF 摘要

    WCF中实现双工通信

    参考:

    http://www.cnblogs.com/artech/archive/2007/03/02/661969.html

    MEP,Message Exchange Pattern ,消息交互模式

    WCF客户端与服务器之间是通过消息进行通讯,有必要了解WCF的消息交换模式,以对消息的发送和接受有更直观的理解。在WCF中,有三种消息交换模式:数据报模式、请求——响应模式、双工模式。

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

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

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

    1)返回类型只能是void ;2)不能包含ref或者out类型参数; 3)只有客户端发起请求,服务端并不会对请求进行回复。

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

    在请求响应模式中,客户端发送一个消息并且接收一个返回消息来完成一次交互。在该模式中,消息的发起端必然是客户端,并且从服务端返回只有一条消息。客户端在发送出消息后,会阻止当前进程并且等待服务端返回消息。请求响应模式是缺省的消息交换模式,类似于Http中的请求/响应模式,这种交换模式是使用最多的一种。请求响应模式调用的实例包括远程调用(RPC)和浏览器的Get请求。此模式也称为半双工。

     具有如下特点:

    1)调用方法后需要等待服务的消息返回; 2)在这种模式下,服务端永远是服务端,客户端就是客户端,职责分明。

     3.双工模式(Duplex)

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

    两种典型的双工MEP

    双工(Duplex)模式的消息交互方式体现在消息交换过程中,参与双方均可以向对方发送消息。

    双工消息交互模式使客户端回调(CallBack)客户端操作成为可能。

    1.请求过程中的回调

    这是一种比较典型的双工消息交换模式的表现形式,客户端在进行服务调用时,附加上一个回调对象;服务在相应的处理中,通过客户端附加的回调对象(实际上是调用回调服务的代理对象)来回调客户端的操作(该操作在客户端执行)。整个消息交换的过程中,实际上由两个基本的消息交换构成,其一是客户端正常的服务请求,其二是服务端对客户端的回调。两者可以采用请求响应模式,也可以采用单向(One Way)的MEP进行消息交换。

    2.订阅—发布

    订阅发布模式是双工模式的一个典型的变体。在这个模式下,消息交换的双方变成了订阅者和发布者,若干订阅者就某个主题相发布者申请订阅,发布者将所有的订阅者保存在一个订阅列表中,在某个时刻将主题发送给该主题的所有订阅者。实际上基于订阅—发布模式的消息交换也可以看成是两个基本模式下消息交换的组合,申请订阅是一个单向模式的消息交换(如果订阅者行为得到订阅的回馈,该消息交换也可以采用请求—响应模式);而主题发布也是一个基于单向模式的消息交换过程。

  • 相关阅读:
    English,The Da Vinci Code, Chapter 23
    python,meatobject
    English,The Da Vinci Code, Chapter 22
    English,The Da Vinci Code, Chapter 21
    English,The Da Vinci Code, Chapter 20
    English,The Da Vinci Code, Chapter 19
    python,xml,ELement Tree
    English,The Da Vinci Code, Chapter 18
    English,The Da Vinci Code, Chapter 17
    English,The Da Vinci Code, Chapter 16
  • 原文地址:https://www.cnblogs.com/RealAlex/p/2777059.html
Copyright © 2011-2022 走看看