- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于WCFSilverlight绘图聊天程序实现
基于WCFSilverlight绘图聊天程序实现
摘要:WCF技术能实现聊天功能。结合WCF服务配置以及Silverlight客户端定义,调用WCF服务器端代理类,完成了绘图功能和聊天记录的发送。通过WCF的双向通信机制实现了Silverlight绘图聊天程序。
关键词:WCF;Silverlight;代理类;双向通信;绘图聊天
DOIDOI:10.11907/rjdk.151124
中图分类号:TP3-0
文献标识码:A 文章编号
文章编号2015)006005402
作者简介作者简介:邹?B(1981-),女,江苏苏州人,硕士,苏州农业职业技术学院讲师,研究方向为.NET软件开发。
0 引言
WCF(Windows Communication Foundation,Windows通信基础)属于.NET Framework框架中的通信层子框架,是微软推出的用于开发面向服务架构SOA应用程序的基础框架,整合了各种不同的分布式开发技术,例如Web服务、.NET远程处理及Enterprise Services[1]等。
1 WCF技术概述
1.1 WCF技术开发模型
WCF作为基于SOA面向服务架构的一个通信框架产品,主要用于创建应用程序服务,而一个WCF服务又包含称为ABC的3个部分。
A是Address的简称,用于指定服务地址。每个WCF服务都有一个唯一的地址,该地址定义了服务的引用地址和传输协议。
B是Binding的简称,中文称为绑定。因为可供通信的方式很多,比如可以是单向或双向的通信,可以使用HTTP、TCP、P2P或IPC等。绑定提供了一些用于通信的封装好的方式。
C是Contract的简称,中文称为契约,描述了服务所能提供的各种服务。
WCF简化了开发分布式应用程序的复杂性,让开发人员不再过度关注复杂的通信协议及数据交换,将所有精力放在业务逻辑的实现上[2]。
1.2 绘图聊天程序预览效果
打开聊天程序,要求用户输入一个名字进行登录,便于聊天室知道当前聊天人员的信息,单击“登录”按钮后,打开聊天程序的主窗体。
主窗体左侧是绘图面板,底部是供绘图的工具,包括画笔、画刷和基本形状工具。顶部标题栏下是位置区,用户可以设置线程、画刷颜色和画刷粗细等样式,右侧文本框用户可以输入聊天信息,当用户单击“发送聊天信息”按钮后,用户的聊天信息将在所有的客户端显示。
用户在绘图区域绘图时,所有使用该Silverlight聊天程序的客户端都会实时显示出绘图笔记。当有新用户登录或进行绘图操作后,聊天室底部的状态栏面板上会显示通知信息,可以知道当前是哪位用户在绘图板上绘制了图形。
2 WCF服务器功能设计
2.1 定义WCF服务契约
WCF服务将宿主到IIS中,创建一个标准的用于承载Silverlight的ASP.NET项目:右击该项目名称,选择“添加”|、“新建项”命令,在弹出的“添加新项”窗口中,选择WCF服务项,命名为DuplexDrawService.svc,VS会自动向项目中加入一个svc文件和一个IDuplexDrawService的契约定义文件。
为了让客户端发送的消息能在多个客户端窗口之间同步,使用WCF双向通信绑定。双向通信原理是:一般获取数据使用的是客户端调用服务端的方法来获取数据,而Duplex是将客户端也当作服务器,客户端上的方法一样可以使用。
每当客户端通过HTTP协议连接到服务器端后,会向服务器注册一个该客户的名称和回调接口到服务器端的字典中。当客户端发送聊天内容或者进行绘制时,服务器端将查询已连入的客户端,使用回调机制调用客户端的更新方法将数据推送到Silverlight客户端,达到在一个地方发送信息,所有客户端都能保持同步的效果[3]。
2.2 定义WCF回调契约
IDuplexDrawCallback接口用于定义WCF服务的回调契约,该接口向服务器端发送更新通知。
2.3 实现服务契约
IDuplexDrawService接口用来向客户端发布WCF服务,项目中的DuplexDrawService类提供IDuplexDrawService接口的实现。在类的声明中,使用WCF服务为ServiceBehavior定义在客户端调用服务器端的行为[4]。
2.4 配置WCF服务器
为了让客户端可以访问,还需要定义WCF服务地址和绑定。
(1)为了实现WCF的双向绑定,需要引入System.ServiceModel.PollingDuplex.dll这个程序集,该程序集位于Silverlight SDK中。
文档评论(0)