您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页基于Comet的Web即时通讯系统设计与实现

基于Comet的Web即时通讯系统设计与实现

来源:筏尚旅游网
第39卷 第10期专辑

2012年10月计算机科学

Comutercience SpVol.39No.10Supp

Oct2012 

基于Comet的Web即时通讯系统设计与实现

戚永军1 翟智平2 耿娟平1

12

())北华航天工业学院网管中心 廊坊0北华航天工业学院图书馆信息技术组 廊坊06500065000 (

 

/摘 要 基于W大部分系统在数据实时eb的即时通讯系统应用越来越广。由于HTTP协议和BS模型的,并对实现原理和优缺点做了简单介绍,然后从系统架构、和同步方面存在一些不足。给出了3种不同的解决方案,

程序流程、核心类设计3个方面详细介绍了基于Comet模型的即时通讯系统的设计与实现。,关键词 C系统,研究omet

中图法分类号 TP391   文献标识码 A

 

DesinandImlementationonWebInstantMessainSstemBasedonComet         gpggy 

121

QIYonunHAIZhiinENGJuanin - Z -p -pgjg Gg

(,,)AdministrationCenterofNetworksNorthChinaInstituteofAerosaceEnineerinLanfan065000,China        pgggg 2(,,)InformationTechnoloGrouofLibrarNorthChinaInstituteofAerosaceEnineerinLanfan065000,China       gypypgggg   

 

Abstractebinstantmessainsstemalicationsaremorewide.DuetotherestrictionsoftheHTTProtocol W             ggyppp /,theBSmodelmostsstemsarestillsomedeficienciesintermsofrealtimedataandsnchronization.Thisandaer            -    yyppivesthreedifferentsolutionsandintroducestherealizationoftherincileandcomarestheadvantaesandfirst                gpppg,rocessdisadvantaes.Thenitdescribesindetailthesstemfromthreeasectsofthesstemarchitectureflow,the              pgypyclassdesin.core  g

,KewordsometSstem,Stud Cyyy

 

1 引言

即时通讯系统是强大且极具潜力的网络传播媒介之一。随着W基于Web技术的发展,eb的即时通讯系统不断增多,由于受HTTP协议无状态性和/很难做到多客户BS模型中服务端的被动性,端消息的实时和同步,但数据的实时性对即时通讯系统有重要意义。本文给出了一种基于Comet模型的即时通讯系统的设计与实现方法,从而很好地解决了该问题。

隔4s取一次goole新闻的代码。g

图1 传统的Web模型

〈META HTTPEQUIV=“Refresh”Content-//”〉=“4;URL=httnews.oole.com.hkp:gg

该种方案存在以下不足:

)(客户端页面频繁刷新,用户上网体验差。1

()页面刷新间隔无法确定。间隔太长,服务端2

数据早已更新,客户端得不到最新数据;间隔太短,服务端数据没有更新,返回的还是原来的数据。

()即使有一小部分数据更新,客户端也需整页3

回发,浪费网络带宽。2.2 基于Aax模型j

为了改善用户上网体验,减少前后端通信量,提/目前大部分B高系统的执行效率,S程序都采用

·77·

2 即时通讯系统实现方案

2.1 基于传统Web模型

传统的W客户端载入eb模型遵循这样的模式:页面→用户执行动作(如单击一个链接)→提交数据到服务器→服务器处理→服务器发送数据到客户端如图1所示。→客户端重新载入页面,

基于该模型的即时通讯系统的常用方法是“”,客户端每隔一定时间自动向服务HTMLrefresh 端发送请求,服务端处理后再刷新界面。如下是每

Ajax技术。Ajax模型基于传统Web模型在客户端增加了一个Ajax通信层,负责与服务端进行交互,如图2所示。

图2 Aj

ax模型基于该模型的即时通讯系统仍然是基于客户端轮询的思想,客户端使用JavaScript脚本每隔一段时间自动向服务端发送请求。由于使用了Aj

ax技术,

页面就不会刷新,用户体验会好一些,但该种方案并没有解决数据实时传输问题。.3 基于Comet模型

Comet模型是在Ajax模型的基础上在服务端增加了一个服务端通信层,负责与客户端保持连接,如图3所示。

图3 Comet模型

Aj

ax技术实现了客户端向服务器端异步请求数据,Comet技术实现了服务器端主动向客户端发送数据。从事件驱动的角度来说,Ajax技术是把客户端产生的异步事件发送给服务器,由服务器对事件做出响应;Comet技术是把服务器端产生的异步事件主动发送给客户端,然后由客户端对事件做出响应的更新。Comet技术与Ajax技术相结合,解决了HTTP协议的无状态性和B/S模型中服务端被动性的问题,实现了服务端数据传输的实时性和主动性。

实现Comet模型需要解决好以下两个问题:(1

)客户端和服务端处于长期连接状态,这会消耗服务器资源。

(2)一个客户端占用一个线程,若客户端过多,·78·

线程数量会超过服务器栈有效处理的线程数量。

本文使用线程池和异步回调等多种技术解决了上述问题。

3 基于Comet模型的即时通讯程序设计与

实现

3.1 系统架构

根据实际需求,结合目前成熟的软件框架,充分考虑系统的可扩展性、易维护性、执行效率、开发效率、用户体验等多种因素,系统采用分层设计,不同

的层采用不同的框架实现。可分为表示层、接口层、实体层、逻辑层、数据访问层、数据层等6层,如图4所示。

图4 系统架构图

(1

)表示层。该层主要关注用户的体验和数据的采集,选用Jquery框架,它属于轻量级JavaScript框架,较ASP.NET Ajax框架更简单、灵活且特效丰富,用户体验好,在开发Aj

ax应用方面表现也特别突出。

(2

)接口层、实体层、逻辑层。考虑到软件的松耦合和可扩展性,将数据库表映射成实体类,令其作为参数在各个层之间传递,数据层变化时相关代码改变最少。逻辑层封装了系统的业务逻辑,部分类从接口层派生。使用接口层能保持开发风格的一致性,方便管理,提高系统的扩展性。这3层使用.NET框架实现,该框架是服务器端框架,类库丰富、语法简练、功能强大,本身提供了异步操作的接口。

(3

)数据访问层。该层封装了对数据库的操作,支持多种数据库,当用户改变数据库类型时只需在配置文件中做少量更改即可。该层使用NHiber-2nate框架实现,Nhibernate是面向.NET环境的对象/关系数据库映射工具,使用直观、简单、方便。3.2 核心功能程序流程

即时通讯系统核心功能是接收和发送消息,其程序流程图如图5所示。

图5 程序流程图

为了保证图5的程序流程正常运行,采取如下技术。

(1

)使用线程池:处理一个客户请求就使用一个线程,多个客户端使用多个线程,可并发执行。由于客户端对象可反复使用,

若客户端每次请求都创建和回收一次线程,则会造成服务器资源浪费,因此预先创建一些线程放入线程池中备用,既提高了效率,又节约了资源。

(2

)使用异步回调:系统的监听线程将接收到的客户请求交给工作线程后立即返回,

继续监听其他的客户请求。工作线程将完成结果交给回调函数,回调函数将结果做一定处理后返回客户端。这样线程之间各司其职,互不干扰,并行工作而又环环相扣,工作效率很高。

(3

)基于事件:客户端要收发消息必须激发相应的事件,而且客户端必须在服务端注册相应的事件才能得到相关的服务。

(4

)维持长连接:通过两种方式维持客户端和服务端的长连接,一是设定超时时间,超时后客户端仍无请求,

服务端发送信息让客户端发送连接请求。二是客户端成功接收消息后,立即发送连接请求。3.3 核心类设计

根据图5的程序流程,核心类设计图如图6所示。

图6 核心类设计图

(1)IMClient:客户端,一个IMClient实例代表一个客户端。

(2)IMMessage:即时通讯系统的消息。(3)IStateProvider:定义了一系列的接口来提供对IMClient实体和IMMessag

e的操作。(4)IHttpAsy

ncHandler:.NET框架提供的接口,定义HTTP异步处理程序对象必须实现的协定。

(5)IAsyncResult:.NET框架提供的接口,表示异步操作的状态。

(6)IMClientEvent:IMClient的事件监听类和广播类。

(7)IMWaitThread:服务器端线程池,排队等待信息请求并调用,同时提供超时等操作。

(8)IMWaitRequest:服务器端线程,监听客户端的消息请求。

(9)IMAsyncResult:异步请求的管理类,通过继承IAsy

ncResult来实现异步。(10)IMStateManager:用来管理线程池,管理线程和用户连接、消息转发等一系列操作。

结束语 通过对3种Web模型的讨论,可以看出Comet模型是目前为止,不需任何插件便可实现基于Web的实时类应用程序的较完美的模型,不仅   

(下转第122页)

·79·

在利用高校本身性能较好的电话网络和校园网络以及现有的数据库资源的基础上建立呼叫中心系统,能够更好地实现对广大师生员工和社会公众的服务。

基于云计算的呼叫中心系统在高校中的主要应用如图3所示,提供的服务功能包括:

·学校概况介绍·教育教学服务·科研研究服务·图书馆服务·档案管理服务·招生就业·合作交流·后勤服务·投诉建议

利用学生留下的信息进行回访。

公众对招生咨询的需求是存在波动性的。对于每年高考填报志愿之前,对招生咨询量会高校来说,

达到峰值,此时考生和家长希望能得到专业的招生可以根据咨询信息和报名指导。利用云计算技术,咨询量的增减,在任何时间、任何地点通过互联网迅速灵活地进行座席的调配;咨询高峰时期,可以在学校下属各个学院增加部署远程座席,由各学院的老师提供更详细的专业方面问题的解答。

呼叫中心功能中的招生咨询功能,能为学校及学院领导提供统计分析功能和决策支持,很好地提提升学校的服务形象。高招生咨询效率,

结束语 基于云计算的呼叫中心系统,能够提供更为强大、灵活的呼叫中心功能。通过云技术,用、户端可以轻松地获取语音、视频、电子邮件等Web多渠道的服务。在高校信息化建设的过程中,应该关注呼叫中心的重要作用。高校本身具备良好的硬件和软件基础,在高校建设基于云计算的呼叫中心系统,对于提高提升学校整体服务水平及树立学校良好的社会形象起到了重要的推动作用。

参考文献

[]S:T,1nowR.CloudasedCommunicationsrendsBenefitsand -B  

[],():DriversJ.CustomerInteractionSolutions2011,2992626  -[]A,[]2rmbrustMichael.A ViewofCloudComutinJ.Communi   -pg

():cationsoftheACM,2010,5345058   -[]B,,3ernierPaula.IPContactCenterstheCloud&SocialMedia     

[]Form HolisticCustomerInteractionSolutionsJ.CustomerIn    -,():tertionSolutions2011,3052224@c -[]F,4lussDonnna.FutureofContactCentersClearlLiesinthe      y 

[],():CloudsJ.CRM Maazine2011,1593839-g

[]D[],:5O.CallcenterinthecloudsJ.Entrereneur2010,38(2)     p

3232-[]R,,6osenber.MultimodalMobileAsCloudServicesandUC    gpp

[]VARsMakeTelehoneContactCentersGrow UJ.Customer     pp,():InteractionSolutions2012,3093031 -[]h:///7ttwww.ctiforum.comp

图3 高校云计算呼叫中心系统功能图

以招生咨询工作为例,呼叫中心系统可以充分利用自动语音查询技术,电脑2可将日4小时值班,常性、大众化的问题交给电脑完成,其回答问题标规范。咨询者在电脑语音的提示下,通过电话按准、

键操作来得到自己需要的答案,将招生工作人员从简单而重复的问询中解脱出来,使其将更多的精力放在疑难解答、招生策划等工作上。通过系统的留言功能,保持了信息的连续性,使学校能更进一步地了解生源情况及学生心理状态;必要时,教师还可以(上接第79页)

适合于即时通讯系统,还适用于监控系统、即时报价股票系统等。存在的不足是基于该模型的程系统、

序实现具有一定难度,要处理好维持长连接、充分利用服务器资源等相关问题。

参考文献

[]孙清国,朱玮,刘华军,等.1Web应用中的服务器推送技术研究

]综述[计算机应用,J.2008,11:116119-[]薛宁静,]牛永洁.服务器推技术在实验演示系统中的应用[2J.

信息技术,2010,12:212214-[]费日东,]李定主.服务器推送技术研究[电脑知识与技术,3J.

():2012,8715161517-[]余勇.基于A4SP.NET及Comet技术的WEB即时通信系统的

]设计与实现[电脑与电信,J.2010,9:3640-[]钟运建.基于B广5aeux协议的Comet框架的研究与实现[D].y

州:中山大学,2008

[]陆晓春.基于服务器端P杭6ush的Web框架设计与实现[D].

州:浙江大学,2007

[]T[北京:7homasA.Powell.Aax:TheComleteReferenceM].   jp

电子工业出版社,2009

·122·

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务