当前位置: 首页 > 编程日记 > 正文

用Duplex实现消息广播

http://blog.csdn.net/fangxinggood/archive/2011/01/15/6142861.aspx

WCF中定义3种消息交换模式: 1. Request/Reply; 2. One-Way; 3. Duplex。  
Request/Reply 是缺省模式,即同步调用。在调用服务方法后需要等待服务的消息返回,即便该方法返回 void 类型。 
One-Way 这种方式在调用方法后会立即返回。需要注意的是 One-Way 不能用在非void,或者包含 out/ref 参数的方法上,会导致抛出 InvalidOperationException 异常。 
Duplex 又称为双工通信,实现起来比前两种来说要稍微复杂些。(1) ServiceContract 中指定 Callback类型; (2) 对于回调操作,指定[OperationContract(IsOneWay=true)] ; (3) 服务契约中通过 OperationContext.Current.GetCallbackChannel 来获得客户端 Callback 实例。 

另外,在WCF预定义绑定类型中,WSDualHttpBinding和NetTcpBinding均提供了对双工通信的支持,但是两者在对双工通信的实现机制上却有本质的区别。WSDualHttpBinding是基于HTTP传输协议的;而HTTP协议本身是基于请求-回复的传输协议,基于HTTP的通道本质上都是单向的。WSDualHttpBinding实际上创建了两个通道,一个用于客户端向服务端的通信,而另一个则用于服务端到客户端的通信,从而间接地提供了双工通信的实现。而NetTcpBinding完全基于支持双工通信的TCP协议。 

2011052509014843.gif



转载于:https://www.cnblogs.com/TivonStone/archive/2011/05/25/2056277.html

相关文章:

mongoose手动生成ObjectId

如果需要手动生成使用mongoose.Types.ObjectId()方法。 var mongoose require(mongoose); var id mongoose.Types.ObjectId();

Coolpad F61刷机解锁成功

这几天是高校开学的日子,各大运营商纷纷进驻校园,打出种种优惠,抢新鲜用户。 我一直觉得我现在的移动号码收费太贵,每个月不知不觉就是100多块,对我这个以公司为家(公司电话就是我的电话)的宅人而言,是有点夸张了。特别是和国外的运营商相比,如果你有朋友在国外&…

Django 数据库

一、操作数据库 Django配置连接数据库: 在操作数据库之前,首先先要连接数据库。这里我们以配置MySQL为例来讲解。Django连接数据库,不需要单独的创建一个连接对象。只需要在settings.py文件中做好数据库相关的配置就可以了。示例代码如下&…

MapReduce 中 UDF、UDAF、UDTF

UDF UDF只能实现一进一出的操作,如果需要实现多进一出,则需要实现UDAFUDF函数可以直接应用于select语句,对查询结构做格式化处理后,再输出内容 UDAF UDFA是用户自定义的聚类函数,是基于表的所有记录进行的计算操作 …

计算机网络面试知识总结1

1.TCP报头格式 TCP协议头至少20个字节 (1)源端口 16位,主要用于标志报文的返回地址,其中包含初始化通信的端口 (2)目的端口 16位,指明了要把数据传送到哪 (3)序列号 32位…

C# 导出到Excel (使用NPOI 1.2.4)

最近研究下用C#导出Excel。最后选择要用NPOI来导出。在网上看到了好多的教程啊。于是我兴奋的模仿起来了。先创建个空的excel试试吧。结果:提示无法将类型“NPOI.SS.UserModel.Sheet”隐式转换为“NPOI.HSSF.UserModel.HSSFSheet”。存在一个显式转换(是否缺少强制转…

Putty 工具 保存配置的 小技巧

用Putty 已经很长时间了,但一直被一个问题困扰,有时候是懒得去弄,反正也不怎么碍事,今天小研究了下,把这个问题解决了,心里也舒服了。 Putty是一个免费小巧的Win32平台下的telnet,rlogin和ssh客户端。 它的…

PyODPS 学习 实现查询数据 并更新数据

PyODPS是MaxCompute的Python版本的SDK,提供简单方便的Python编程接口。PyODPS支持类似Pandas的快速、灵活和富有表现力的数据结构。您可以通过PyODPS提供的DataFrame API使用Pandas的数据结果处理功能。本文用于帮助您快速开始使用PyODPS,并且能够用于实…

跟面向对象卯上了,看看ES6的“类”

上回我们说到ES5的面向对象,以及被大家公认的最佳的寄生组合式继承。时代在进步,在ES6中对于面向对象这个大boss理所应当地进行了一次大改,从原先那种比较长的写法转变为“小清新”写法。我们一起来看一下。 在ES6中是有类这个概念&#xff0…

JS数组去重精简版

看了很多人写的好几个去重方法&#xff0c;我在这里精简组合下&#xff0c;适用于已排序与未排序的数组。 废话不多说&#xff0c;上代码。 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>数组去重</title></hea…

[Buzz.Today]2011.05.25

>> VMWare的Open Source Pass - CloudFoundry VMWare推出了开源Pass&#xff1a;CloudFoundary&#xff0c;但是现在只是支持少数几种语言与环境&#xff1a;Java Spring, ROR and Node.JS。。 Source Code on GitHub: https://github.com/cloudfoundry 随便瞄了两眼&…

NeHe OpenGL第三十九课:物理模拟

NeHe OpenGL第三十九课&#xff1a;物理模拟 物理模拟简介: 还记得高中的物理吧&#xff0c;直线运动&#xff0c;自由落体运动&#xff0c;弹簧。在这一课里&#xff0c;我们将创造这一切。 物理模拟介绍 如果你很熟悉物理规律&#xff0c;并且想实现它&#xff0c;这篇文章…

max(min)-device-width和max(min)-width的区别

max-device-width和max-width的区别表现在如下几个方面&#xff1a; 1. max-device-width是设备整个显示区域的宽度&#xff0c;例如&#xff0c;真实的设备屏幕宽度。 2. max-width是目标显示区域的宽度&#xff0c;例如&#xff0c;浏览器宽度。 3. 如果使用max-device-width…

一篇文看懂Hadoop

我们很荣幸能够见证Hadoop十年从无到有&#xff0c;再到称王。感动于技术的日新月异时&#xff0c;希望通过这篇内容深入解读Hadoop的昨天、今天和明天&#xff0c;憧憬下一个十年。 本文分为技术篇、产业篇、应用篇、展望篇四部分 技术篇 2006年项目成立的一开始&#xff0c;“…

MaxCompute动态更新表中某个(多个)字段的数据

功能 MaxCompute支持了delete、update功能&#xff0c;但当您需要使用多个insert、update、delete对目标表进行批量操作时&#xff0c;需要编写多条SQL语句&#xff0c;然后进行多次全表扫描才能完成操作。MaxCompute提供的merge into功能&#xff0c;只需要进行一次全表扫描操…

字符串数组的赋值

例如:main(){chars[30]; strcpy(s,"Good News!"); /*给数组赋字符串*/ }上面程序在编译时,遇到chars[30]这条语句时,编译程序会在内存的某处留出连续30个字节的区域, 并将第一个字节的地址赋给s。当遇到strcpy( strcpy 为TurboC2.0的函数)时, 首先在目标文件的某处建…

NetBeans使用介绍(五)

第9章 Swing菜单 Swing菜单是我们经常用到的一种控件&#xff0c;NetBeans对菜单进行了很好的封装&#xff0c;是我们应用起来非常方便。下面&#xff0c;我们就来简单的了解一下Swing菜单。 菜单&#xff1a;Jmenu 菜单项&#xff1a;JmenuItem 复选菜单项&#xff1a;JcheckB…

Pycharm中如何安装python库

1首先打开pycharm工具&#xff0c;选择File中的Setting选项&#xff0c;如下图所示 2在打开的setting界面中我们点击python的解释器&#xff0c;你会看到很多导入的第三方库&#xff0c;如下图所示&#xff0c;点击最右边的加号 3在弹出的available packages界面中&#xff0c;…

LINUX下SVN命令大全

1、将文件checkout到本地目录 svn checkout path&#xff08;path是服务器上的目录&#xff09;例如&#xff1a;svn checkout svn://192.168.1.1/pro/domain简写&#xff1a;svn co2、往版本库中添加新的文件 svn addfile例如&#xff1a;svn addtest.php(添加test.php)svn ad…

MaxCompute 多行数据合并为一行数据

SELECT class, wm_concat(distinct ,, name) FROM students GROUP BY class; 参考

python学习之循环语句的九九乘法表

while 语句的九九乘法表&#xff1a; ##九九乘法表#总共有九行# 每行中的列数&#xff0c;就是当前所处的行号#乘式的第一个数代表的是列&#xff0c;第二个数代表的是行row 1#行column 1#列while row < 9: while column < row: print(%d * %d %d, %(column…

影著协公布的使用费收取标准

网络&#xff1a;距首映两年内的电影基本使用费下限为10万元/部年。 网吧&#xff1a;每天的使用费为&#xff1a;电脑总量网吧每小时收费标准7.5%。 视频点播:基本使用费为每次点击的单价33.3%终端用户数10%。 飞机和火车&#xff1a;每年每部影片使用费为2500元~5万元。 轮船…

POJ.3207.Ikki's Story IV-Panda's Trick(2-SAT)

题目链接 \(Description\) 一个圆上顺序排列0,1,...,n-1共n个点&#xff0c;给出m条线段&#xff0c;线段可以从里面连也可以从外面连&#xff0c;问是否能满足所有线段不相交 \(Solution\) 把每条线段看做一个点&#xff0c;只有在圆外和在圆内两种情况&#xff0c;于是可以把…

sqlconnection,sqlcommand,SqlDataAdapter ,ExecuteNonQuery,ExecuteScalar

sqlconnection&#xff1a;表示 SQL Server 数据库的一个打开的连接。SqlConnection 对象表示与 SQL Server 数据源的一个唯一的会话。 在客户端/服务器数据库系统中&#xff0c;它等效于一个到服务器的网络连接。 SqlConnection 与 SqlDataAdapter 和 SqlCommand 一起使用&…

swift - idfa(唯一标示/下载量/广告追踪)

//设置-隐私-广告-限制广告跟踪关闭if ASIdentifierManager.shared().isAdvertisingTrackingEnabled {DDLOG(message: "IDFA:\(ASIdentifierManager.shared().advertisingIdentifier.uuidString)")}转载于:https://www.cnblogs.com/qingzZ/p/11046424.html

正则去除括号内容

var str"123{xxxx}456[我的]789123[你的]456(1389090)(\n1389090)789";var regex1 /\((.?)\)/g; // () 小括号var regex4 /\((\n.?)\)/g; // (\n) 小括号var regex2 /\[(.?)\]/g; // [] 中括号var regex3 /\{(.?)\}/g; // {} 花括号&#xff0c;大括号// 输出…

通过shell将*.txt文本内容批量录入mysql

想将某*.txt文本内容全部录入到mysql的某个数据表中&#xff0c;通过使用load data local infile into table table_name ....但感觉用的不够溜、导致经常格式有问题&#xff0c;很难达到我要的效果。。 所以&#xff0c;自己想了下&#xff0c;最后通过shell成功将批量数据导入…

String、StringBuilder、StringBuffer的比较

最近学习中又遇到了StringBuilder&#xff0c;突然就联想到StringBuffeer和String。于是翻翻笔记还在。那么他们有什么区别&#xff1f; 1.StringBuilder与StringBuffer StringBuilder&#xff1a;线程非安全&#xff0c;一般在单线程中操作字符串缓冲区使用&#xff0c;速度最…

Autojs自动化 实现自动删除公众号文章(通过订阅号助手删除)

设备 小米9 效果 autojs1autojs2代码 UI "ui"; const storage storages.create("dinyue"); auto()var search_value if(storage.contains(search_value)){search_value storage.get(search_value) }ui.layout(<vertical padding"30">…

[转]Java中常用的集合—初学者的你不可错过的精编整理

集合一直都是项目中非常常见的&#xff0c;我是一个Android开发者&#xff0c;集合对于我来说&#xff0c;在项目中使用的次数非常之多&#xff0c;因为使用的多&#xff0c;熟能生巧&#xff0c;所以这里呢&#xff01;就给那些初学者整理一下Java当中常用的集合吧&#xff01…