WCF实现全双工通信笔记

原创 2016年05月31日 22:14:31

WCF的双工通信是指客户端和服务端都可以主动呼叫对方。在这种通信模式中,WCF利用双向绑定实现服务端和客户端相互公开终结点的信息。

在VS2015,.NET环境下进行测试


本章最大感悟是代理类必须是一个纯的代理类,即不应该有任何属性。(经他人测试貌似有属性也可以,但个人不推荐)


(1)打开WebConfig修改服务端的配置,应选择一个支持双工通信即会话的绑定(一般为wsDualHttpbinding和netTCPbinding)

<protocolMapping>

<add binding="wsDualHttpBinding" scheme="http"/>

(2)在服务端实现服务协定和操作协定以及服务协定的回调接口协定。

双工通信由两个接口组成,第一个接口用于服务,第二个接口用于回调。

[ServiceContract(CallbackContract = typeof(IServiceDuplexCallback))]

public interface IServiceDuplex

{

...

}

public interface IServiceDuplexCallback

{

...

}

(3)在客户端实现回调接口

在客户端实现中,有一个类实现服务端定义的双工协定回调接口,以便服务端利用它主动向该客户端发送信息。例如:

public class CallbackHandler : IServiceDuplexCallback

{

...

}

然后如果需要和服务端进行通信,首先需要创建InstanceContext类的一个实例,以便让服务端通过该实例知道通信的是哪个客户端对象。例如:

InstanceContext context = new InstanceContext(new CallbackHandler());

ServiceDuplexClient client = new ServiceDuplexClient(context);


需要注意的是,双工模型并不自动检测服务端或客户端何时关闭其通道。

解决方案:(1)发送心跳包,超时则认为关闭(2)用try-catch来捕获调用和回调异常,出错则认为关闭了通道

版权声明:本文为博主原创文章,未经博主允许不得转载。

Winfrom 使用WCF 实现双工通讯

WCF实现的双工通信
  • hotmee
  • hotmee
  • 2016年10月28日 09:48
  • 2398

WCF操作模式-双向操作(双工通信)示例演示

转载自:http://www.lmwlove.com/ac/ID1035 在单向操作模式中,客户端向服务器发送请求,然后服务器回应。但服务器却不能主动向客户端发送信息。但在双向操作模式中,不但客户端...
  • wyqlxy
  • wyqlxy
  • 2015年07月22日 09:08
  • 2411

wcf使用netTcpBinding实现双工通信

原来在学习Silverlight的时候使用过WCF的双工通信,不过是使用pollingDuplexHttpBinding来实现双工,而且服务也是绑定在web程序中。也许是架构没有设计好,在客户端多了的...
  • alasi
  • alasi
  • 2013年01月16日 16:42
  • 3076

wcf双工通信Demo

  • 2012年06月26日 14:52
  • 86KB
  • 下载

我的WCF之旅(3):在WCF中实现双工通信

双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息。基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合。双工MEP又具...
  • liuyuehui110
  • liuyuehui110
  • 2017年03月24日 09:42
  • 223

[老老实实学WCF] 第十篇 消息通信模式(下) 双工

老老实实学WCF 第十篇 消息通信模式(下) 双工   在前一篇的学习中,我们了解了单向和请求/应答这两种消息通信模式。我们知道可以通过配置操作协定的IsOneWay属性来改变模式。在这一篇中我...
  • songyefei
  • songyefei
  • 2012年03月30日 07:35
  • 11860

WCF 学习笔记之双工实现

其中 Client 和Service为控制台程序 Service.Interface为类库 首先了解契约Interface两个接口 using System.ServiceModel; us...
  • dyllove98
  • dyllove98
  • 2013年07月05日 23:30
  • 2377

WCF netTcpBinding 双工通信 实时连接断开检测

  • 2010年06月12日 16:56
  • 147KB
  • 下载

最简单的winform客户端回调服务端WCFDemo下载,双工模式,IIS 6.0

  • 2014年12月30日 16:09
  • 98KB
  • 下载

WCF双工通信代码(C#)

  • 2011年12月25日 11:10
  • 291KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WCF实现全双工通信笔记
举报原因:
原因补充:

(最多只允许输入30个字)