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来捕获调用和回调异常,出错则认为关闭了通道

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

相关文章推荐

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

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

展示两种WCF服务通信方式

学习WCF时,你可能会遇到WCF不允许客户端直接与服务交互,即使它调用的是本地机器内存中的服务问题,这里将介绍WCF服务通信问题的解决方法,客户端总是使用代理(Proxy)将调用转发给服务。代理公开的...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

WCF实现双工通信

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

C# Tcp 全双工通信 实现

C# Tcp 全双工通信笔者在之前用到tcp时,一直都是收数据的时候不发,发数据的时候不收,这是半双工通信。可是大家都知道tcp是可以全双工通信的。所以今天笔者就尝试了一下,嗯,确实可以的而且很简单。...

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

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

WCF 双工模式

WCF之消息模式分为:1、请求/答复模式2、单向模式3、双工模式其中,请求/答复模式,在博文: WCF 入门教程一(动手新建第一个WCF程序并部署)WCF 入门教程二中进行了详细介绍,此处将主要介绍:...

WCF服务器向客户端播送消息和心跳检测

在利用WCF服务的时候,通常只是在服务器监听客户端调用服务。但是WCF服务本就是对TCP, HTTP等各种通信方式的封装了所有SOCKET能够实现的东西,WCF服务应该也能实现。         前...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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