基于 WEB 的实时事件通知方式大致有五种方案:HTTP拉取方式(pull),HTTP流,Long Polling,Flash XMLSocket方式,Java Applet.
首先说下Comet这个词,Comet 这个词是最早由Alex Russell(Dojo Toolkit 的项目 Lead)提出的,称基于 HTTP 长连接、无须在浏览器端安装插件的“服务器推(Push)”技术为“Comet”。
一.HTTP拉取方式(pull)
在这种传统的方法中,客户端以用户可定义的时间间隔去检查服务器上的最新数据。这种拉取方式的频率要足够高才能保证很高的数据精确度,但高频率可能会导致 多余的检查,从而导致较高的网络流量。而另一方面,低频率则会导致错过更新的数据。理想地,拉取的时间间隔应该等于服务器状态改变的速度。常见的实现如利 用 "<meta http-equiv="refresh" content="5" />" tag,当然利用xmlHttpRequest定时取也是一种方法。
二.HTTP流(Push机制)
HTTP流有两种形式:* Page Stream: 页面上不间断的HTTP连接响应(HTTP 1.1 Keep Alive)。
通过在 HTML 页面里嵌入一个隐蔵帧(iframe),然后将这个隐蔵帧的 SRC 属性设为对一个长连接的请求,服务器端就能源源不断地往客户端输入数据。
* Service Stream: XMLHttpRequest连接中的服务器数据流。
客户端是在 XMLHttpRequest 的 readystate 为 4(即数据传输结束)时调用回调函数,进行信息处理。当 readystate 为 4 时,数据传输结束,连接已经关闭。Mozilla Firefox 提供了对 Streaming AJAX 的支持,即 readystate 为 3 时(数据仍在传输中),客户端可以读取数据,从而无须关闭连接,就能读取处理服务器端返回的信息。IE 在 readystate 为 3 时,不能读取服务器返回的数据,目前 IE 不支持基于 Streaming AJAX.
注:使用 Page Stream(iframe) 请求一个长连接有一个很明显的不足之处:IE、Morzilla Firefox 下端的进度栏都会显示加载没有完成,而且 IE 上方的图标会不停的转动,表示加载正在进行。Google 的天才们使用一个称为“htmlfile”的 ActiveX 解决了在 IE 中的加载显示问题,并将这种方法用到了 gmail+gtalk 产品中。Alex Russell 在 “What else is burried down in the depth‘s of Google’s amazing JavaScript?” 文章中介绍了这种方法。Zeitoun 网站提供的 comet-iframe.tar.gz,封装了一个基于 iframe 和 htmlfile 的 JavaScript comet 对象,支持 IE、Mozilla Firefox 浏览器,可以作为参考。(http://alex.dojotoolkit.org/?p=538)
三.长时间轮询(Long Polling)
也就是所谓的异步轮询(Asynchronous Polling),这种方式是纯服务器端推送方式和客户端拉取方式的混合。它是基于BAYEUX协议(http: //svn.xantus.org/shortbus/trunk/bayeux/bayeux.html)的。这个协议遵循基于主题的发布——订阅机 制。在订阅了某个频道后,客户端和服务器间的连接会保持打开状态,并保持一段事先定义好的时间(默认为45秒)。如果服务器端没有事件发生,而发生了超 时,服务器端就会请求客户端进行异步重新连接。如果有事件发生,服务器端会发送数据到客户端,然后客户端重新连接。
1. 服务器端会阻塞请求直到有数据传递或超时才返回。
2. 客户端 JavaScript 响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接。
3. 当客户端处理接收的数据、重新建立连接时,服务器端可能有新的数据到达;这些信息会被服务器端保存直到客户端重新建立连接,客户端会一次把当前服务器端所有的信息取回。
4.Flash XMLSocket(push机制)
分享到:
相关推荐
【基于Web的人事管理系统】是一种将人力资源管理流程数字化并整合到网络平台上的解决方案。它旨在提高组织内部人事工作的效率和准确性,通过集中化的数据存储、自动化的工作流程以及用户友好的界面,实现对员工信息...
【标题】:“基于Web开发的学生公寓管理系统” 这个项目的核心是一个基于Web技术构建的管理系统,专门针对学生公寓的日常运营和管理。它集成了各种功能,旨在提高学生公寓的管理效率,提升服务质量,同时方便学生与...
【基于Linux的Web OA方案设计】的文档主要探讨了如何利用Linux操作系统开发Web办公自动化(OA)系统。OA系统是现代计算机技术中的重要应用,它包括C/S模型、B/S模型以及结合两者的Web OA技术。随着技术的进步,Linux...
传统物业管理存在信息不透明、沟通不便等问题,而基于Web的物业管理信息系统能够实现数据的实时更新和共享,提高工作效率。此外,系统的需求分析明确了要解决的问题,如业主信息管理、缴费记录、报修服务、公告发布...
### 基于Web的实验室预约管理系统的设计与实现 #### 概述 随着信息技术的快速发展,各类实验室在教育、科研及工业领域的应用越来越广泛。为了更高效地利用实验室资源,提高实验室管理效率和服务质量,基于Web的...
总结来说,基于Web的学生管理应用利用Java技术栈,构建了一个集中的、高效的管理系统,为教育机构提供了便捷的信息化解决方案。通过不断的优化和升级,这些应用能够更好地适应教育行业的变化,提升服务质量。
【基于Web育儿助手系统的设计与实现】是一个针对现代育儿需求的在线平台,旨在提供科学的育儿知识、资讯以及互动交流的环境。系统采用先进的技术栈,包括JSP(JavaServer Pages)、MySQL数据库以及Java编程语言,...
【基于WEB的学生成绩管理系统】是一种利用网络技术实现的学生学业成绩记录、分析与管理的软件系统。在当今数字化教育的背景下,此类系统已经成为学校教务管理的重要工具,它能够提高工作效率,减少人为错误,方便...
【基于Web的健身管理系统】是...总而言之,基于Web的健身管理系统通过结合ASP.NET技术和SQL数据库,为健身行业提供了便捷、高效的数字化解决方案,助力健身房提升服务质量,优化运营效率,同时也提升了会员的健身体验。
### 基于WEB的即时通讯系统的研究与设计 #### 概述 随着互联网技术的飞速发展,人们对于信息交流的需求越来越强烈。传统的通信方式已经无法满足现代社会高效率、实时性的沟通需求。《基于WEB的即时通讯系统的研究...
【基于Web程序设计的教师管理系统】是一个综合性的应用平台,主要目标是为教育机构或学校提供一套便捷、高效的教师管理解决方案。系统的核心是利用Web技术,使得管理员、教师以及相关部门可以远程访问,进行教职员工...
综上所述,基于Java Web的工作日志管理系统是一个综合性的解决方案,它利用先进的Web技术和设计理念,以满足现代企业的信息管理需求。通过详尽的需求分析、精心的设计和开发,系统将为用户提供高效、安全的工作日志...
【C#短信平台(基于Web服务)】是一个利用C#编程语言开发的高效且实用的短信发送系统,它构建在Web服务的基础上,为用户提供了一种便捷的短信通信解决方案。这个平台特别适合初学者学习Asp.Net技术,因为其代码结构...
"基于Web的大学生论文管理系统设计与实现" 这个标题指出我们要讨论的是一个特定类型的软件系统,即一个用于管理大学生论文的Web应用程序。这个系统旨在提高论文管理工作效率,方便教师评审,同时可能也便于学生提交...
《基于Web数据库图书管理信息系统设计与实现》是一个适用于中小学图书管理的系统,它结合了现代Web技术和数据库管理,为图书的高效、便捷管理提供了全面的解决方案。本系统的核心功能包括图书的录入、检索、借阅、...
Web会议解决方案是一种集成数据、语音和图像的在线通信方式,主要应用于企业和组织中,以便进行远程协作和会议。UT斯达康提供的Web会议业务凭借其强大的功能和灵活的使用方式,已经成为信息技术领域的一个重要组成...
《基于 Web 的服装销售管理系统研究》提出了基于 Web 的服装销售管理系统解决方案,该系统具有信息录入、修改、查询、统计分析、统计数据展示等功能。该系统包含有销售服务、库存管理、会员管理、营销管理、基础管理...
【基于Web的办公自动化管理系统】是一种利用互联网技术实现企业内部工作流程自动化、信息共享和协作的解决方案。随着信息技术的快速发展和商业竞争的加剧,企业对于高效、集成化的办公模式的需求日益增强。网络办公...
综上所述,"基于WEB的中学学生管理信息系统"是一个全面的教育管理解决方案,利用现代信息技术提升了教育管理的效率和质量。通过使用ASP.NET和C#,系统具备稳定性和可扩展性,能够适应中学教育环境的多样化需求。