知识大全 基于WEB 的实时事件通知方案

Posted

篇首语:知识的价值不在于占有,而在于使用。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 基于WEB 的实时事件通知方案相关的知识,希望对你有一定的参考价值。

基于WEB 的实时事件通知方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  基于 WEB 的实时事件通知方式大致有五种方案 HTTP拉取方式(pull) HTTP流 Long Polling Flash XMLSocket方式 Java Applet

  首先说下Comet这个词 Comet 这个词是最早由Alex Russell(Dojo Toolkit 的项目 Lead)提出的 称基于 HTTP 长连接 无须在浏览器端安装插件的 服务器推(Push) 技术为 Comet

  一 HTTP拉取方式(pull)

  在这种传统的方法中 客户端以用户可定义的时间间隔去检查服务器上的最新数据 这种拉取方式的频率要足够高才能保证很高的数据精确度 但高频率可能会导致多余的检查 从而导致较高的网络流量 而另一方面 低频率则会导致错过更新的数据 理想地 拉取的时间间隔应该等于服务器状态改变的速度 常见的实现如利用 <meta equiv= refresh content= /> tag 当然利用xmlHttpRequest定时取也是一种方法

  二 HTTP流(Push机制)

  HTTP流有两种形式 * Page Stream 页面上不间断的HTTP连接响应(HTTP Keep Alive)

  通过在 HTML 页面里嵌入一个隐蔵帧(iframe) 然后将这个隐蔵帧的 SRC 属性设为对一个长连接的请求 服务器端就能源源不断地往客户端输入数据

  * Service Stream XMLHttpRequest连接中的服务器数据流

  客户端是在 XMLHttpRequest 的 readystate 为 (即数据传输结束)时调用回调函数 进行信息处理 当 readystate 为 时 数据传输结束 连接已经关闭 Mozilla Firefox 提供了对 Streaming AJAX 的支持 即 readystate 为 时(数据仍在传输中) 客户端可以读取数据 从而无须关闭连接 就能读取处理服务器端返回的信息 IE 在 readystate 为 时 不能读取服务器返回的数据 目前 IE 不支持基于 Streaming AJAX

  注 使用 Page Stream(iframe) 请求一个长连接有一个很明显的不足之处 IE Morzilla Firefox 下端的进度栏都会显示加载没有完成 而且 IE 上方的图标会不停的转动 表示加载正在进行 Google 的天才们使用一个称为 file 的 ActiveX 解决了在 IE 中的加载显示问题 并将这种方法用到了 gmail+gtalk 产品中 Alex Russell 在 What else is burried down in the depth s of Google s amazing JavaScript? 文章中介绍了这种方法 Zeitoun 网站提供的 et iframe tar gz 封装了一个基于 iframe 和 file 的 JavaScript et 对象 支持 IE Mozilla Firefox 浏览器 可以作为参考 (?p= )

  三 长时间轮询(Long Polling)

  也就是所谓的异步轮询(Asynchronous Polling) 这种方式是纯服务器端推送方式和客户端拉取方式的混合 它是基于BAYEUX协议()的 这个协议遵循基于主题的发布——订阅机制 在订阅了某个频道后 客户端和服务器间的连接会保持打开状态 并保持一段事先定义好的时间(默认为 秒) 如果服务器端没有事件发生 而发生了超时 服务器端就会请求客户端进行异步重新连接 如果有事件发生 服务器端会发送数据到客户端 然后客户端重新连接

     服务器端会阻塞请求直到有数据传递或超时才返回

   客户端 JavaScript 响应处理函数会在处理完服务器返回的信息后 再次发出请求 重新建立连接

   当客户端处理接收的数据 重新建立连接时 服务器端可能有新的数据到达 这些信息会被服务器端保存直到客户端重新建立连接 客户端会一次把当前服务器端所有的信息取回

cha138/Article/program/net/201311/13515

相关参考

知识大全 基于ASP.NET的Web动态控件创建

基于ASP.NET的Web动态控件创建  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要web

知识大全 开发基于Web的CSS设计器

开发基于Web的CSS设计器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 SQLServer:基于WEB的数据库查询

SQLServer:基于WEB的数据库查询  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文通

知识大全 构建基于Web/XML的信息集成研究

构建基于Web/XML的信息集成研究  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要在当前的

知识大全 基于OSGi和Spring开发Web应用

基于OSGi和Spring开发Web应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作为一个

知识大全 基于OO模版技术的文档Web输出新法

基于OO模版技术的文档Web输出新法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  软件准备OO

知识大全 显示页面show.asp--基于web的QQ程序

显示页面show.asp--基于web的QQ程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 基于Jazz技术构建企业级Web2.0应用

基于Jazz技术构建企业级Web2.0应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Jaz

知识大全 基于asp.net的web页面动态控件创建以及使用

 摘要web设计中有很多场合页面的控件要动态创建甚至只能动态创建这样可以增加页面的灵活性但是给程序员带来了一些麻烦比如要使用动态创建的控件怎么使用都是要求解决的问题本文基于aspnet简要介绍了页面的

知识大全 基于SVG的web页面图形绘制API介绍及编程演示

基于SVG的web页面图形绘制API介绍及编程演示  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!S