
所谓双工通讯,其实就是双向调用。
那如何进行双向调用呢,WCF给出了一个解决方案:客户端也起一个服务监听!
呵呵,当然这个只是打个比方,实际处理没有那么重量级。
但是,所谓“CallbackContract”,的确是一个动态的客户端的“服务”契约,用这个契约,服务就可以主动访问客户应用了,这个和标准的回调函数很相似吧,估计名字也就是这么来的:)
以上是基础知识解释。好了,下边正式回答你的问题:
首先,如果服务端不需要“回调”,那就不要在声明里使用CallbackContract,那么客羡敬户端自然也不需要在兄镇慎new的时候写入需要执行的具体回调处理方法名了。
第二,如果只是部分不需要,旅悔那么,最好把服务契约做一个明确划分,确定客户端访问时是否需要提供回调契约。
第三,即使声明了回调契约,客户端也实现了,DoWork内部也可以不调用契约接口啊,对系统性能没有任何影响。
如果没说清楚,你再问:)
应该说方便。采用双工模式,在一定程度上可以减少你的开发工作量。但是,问题是一个即时通讯软件,是很复杂的。估计明确的功能/非功能需求提出来的时候你的通讯层的效率可能会Hold不住。
比如QQ就封装了TCP协议,自己定义扩展了协议中的内容。
在比如说TCP协议上,WCF仅仅支持 WCF的客户端对WCF服务端。其他的不行,基宽慎比如JAVA。
如果是一个简搏敬单的即时通讯功能或巧稿者说是组件级别的WCF会是一个很好的选择。
WCF 支持 单工,半双工,迅渗双工。
回调培仔契约(双工)的类型通过ServiceContractAttribute特性的CallbackContract属性进行指定。
具体的代码和实现可亩中脊以搜索 关键字 WCF双工通讯 来查找。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)