1.http://www.ibm.com/developerworks/cn/web/wa-lo-comet/
2.http://hi.baidu.com/hivemind/blog/item/f95ecafe333e47235c6008be.html
HTTP协议是互联网上大量信息交换的基础,其特点是,它是基于请求—响应模式的无状态的单向协议,即必须由客户端发起一个请求建立连接,服务器接收请求,把数据返回给客户端,然后释放连接。下一次,再由客户端发起另一次请求,重复上述过程。服务器始终处于“被动”地位。
Comet技术被称为反AJAX(Reverse AJAX)技术,它通过实现服务器推(server push)来解决AJAX需要定时频繁发送请求的问题。通过Comet,客户端所需要的响应信息不再需要主动地去索取,而是在服务器端以事件 (Event)的形式推至客户端。
Comet技术的实现方式有两种:基于 AJAX 的长轮询(long-polling)方式(long-polling)和流方式(streaming)。
长轮询:HTTP的连接保持,服务器端会阻塞请求,直到服务器端有一个事件触发或者到达超时。客户端在收到响应后再次发出请求,重新建立连接。通过这种方式,服务器可以在数据可用的任何时候将数据“推”到客户端。因为这种方案基于AJAX,请求异步发出,无须安装插件,IE、Mozilla FireFox都支持。
使用 AJAX 实现“服务器推”与传统的 AJAX 应用不同之处在于:
- 服务器端会阻塞请求直到有数据传递或超时才返回。
- 客户端 JavaScript 响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接。
- 当客户端处理接收的数据、重新建立连接时,服务器端可能有新的数据到达;这些信息会被服务器端保存直到客户端重新建立连接,客户端会一次把当前服务器端所有的信息取回。
流方式:在流方式中,服务器推数据返回客户端,但不关闭连接,连接始终保持,直到超时,超时后通知客户端重新建立连接,并关闭原来的连接。
在长轮询方式下,客户端是在XMLHttpRequest的readystate为4(即数据传输结束)时调用回调函数,进行信息处理。当 readystate为4时,数据传输结束,连接已经关闭。Mozilla Firefox提供了对流方式的支持,即readystate为3时(数据仍在传输中),客户端可以读取数据,从而无须关闭连接,就能读取处理服务器端返回的信息。IE在readystate为3时,不能读取服务器返回的数据,目前IE不支持流方式。
分享到:
相关推荐
Pushlet是Comet技术的一种实现,由Unicauca开发,它提供了一个框架来处理服务器推送的数据流。 在这个"comet pushlet 例子"中,我们主要关注以下几个关键知识点: 1. **HTTP长连接**:在HTTP协议中,通常每个请求...
Pushlet是Comet框架的一个实现,它由Janus Software公司开发。Pushlet的核心思想是通过一个持久化的HTTP连接来保持服务器与客户端之间的通信,使得服务器可以在有新数据时立即发送给客户端,而不是等待客户端的下一...
Pushlet和Comet技术是Web服务器向浏览器推送数据的两种策略,主要用于实现实时的、双向的通信。这两种技术在传统的HTTP协议基础上进行了扩展,克服了HTTP请求-响应模型的限制,使得服务器能够主动向客户端推送数据,...
标题中的“通过推送机制(Tomcat comet,pushlet)实现进度条”涉及到的是Web应用中的一种实时通信技术,主要用于提供动态更新和用户交互。这里主要介绍Tomcat的Comet和Pushlet技术,以及如何利用它们来创建一个...
Pushlet 是一个开源的 Comet 框架,Pushlet 使用了观察者模型:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。 ...
/pushlet/src/np/comet/pushlet/ext/PushLetUserInfo.java 提供发送信息,显示历史信息,显示在线用户列表的servlet /pushlet/src/np/comet/pushlet/ext/PiccUtil.java 通过对类的扩展实现,自定义的p_id的生产...
/pushlet/src/np/comet/pushlet/ext/PushLetUserInfo.java 提供发送信息,显示历史信息,显示在线用户列表的servlet /pushlet/src/np/comet/pushlet/ext/PiccUtil.java 通过对类的扩展实现,自定义的p_id的生产...
Pushlet是基于Comet技术的一种实现,它为Java开发者提供了一种高效的服务器推送解决方案。 一、Comet技术 Comet是一种允许服务器长时间保持HTTP连接的技术,它打破了传统的Web应用模型,即客户端发起请求,服务器...
标题中的“pushlet”是指Pushlet,一种基于Comet技术的服务器推送机制。Comet是一种Web应用程序模型,它允许服务器向客户端(通常是浏览器)实时推送数据,而不是传统的HTTP请求-响应模式,即客户端需要不断轮询...
基于pushlet实现的comet技术的服务器推技术。新增了接口和实现类,可直接调用点对点,群发等功能。注意Session类当中create方法中王hashtable当中存入当前登录用户id和sessionid键值对。启动后会发现的。
本文主要讨论了一种基于Comet服务器推技术的Pushlet实现,这种技术允许服务器向客户端实时推送数据,而无需客户端持续发起请求。 Comet技术是一种优化的Web通信模式,其核心思想是利用持久化HTTP连接来实现实时数据...
这通常涉及到创建一个持久的HTTP连接,使用WebSocket或Comet技术(Pushlet使用的是Comet)。 3. **消息处理**:在服务器端,你需要创建一个处理聊天消息的逻辑,包括接收新消息、存储消息、以及将消息推送给正确的...
Pushlet框架应运而生,它基于Comet技术,利用持久连接来实现实时推送,使服务器能够在数据准备好时立即推送给客户端,而无需等待客户端的请求。 Pushlet框架的核心组件是pushlet.jar,这是一个包含所有必需类和库的...
【Pushlet的JAR包和文档】是一组与实时通信技术相关的资源,主要涉及Pushlet项目,这是一种基于Java实现的Comet风格的Web应用工具。Pushlet是早期实现服务器推送(Server-Side Push)技术的一个重要框架,它利用HTTP...
7. **Comet技术**:Pushlet是早期实现Comet技术的库之一。Comet是一种让服务器能长时间保持HTTP连接开放,以便向客户端推送数据的技术,这在实时应用中非常有用,比如股票交易、即时聊天和在线游戏等。 在实际应用...
Java 推送 长连接 轮询 pushlet comet4j” 这个描述中提到了几个关键概念: 1. **Java推送**:Java作为一种跨平台的编程语言,提供了多种实现推送服务的方式。在这个demo中,使用了Java进行服务器端的开发,实现了...
Pushlet使用了HTTP长连接(Persistent HTTP Connections)和 Comet 模型。Comet模型是一种处理服务器向浏览器推送数据的技术,它通过保持一个开放的HTTP连接直到有新的数据需要发送或连接超时。Pushlet客户端建立与...
pushlet例子,Pushlet 是一个开源的 Comet 框架,Pushlet 使用了观察者模式:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的...
Pushlet 是一个基于 Comet 技术的框架,用于实现在 Web 应用中服务器向客户端实时推送数据的功能。Comet 是一种反向 AJAX 技术,允许服务器在客户端请求未结束时保持连接开放,从而可以在有新数据时立即推送到客户端...
Pushlet 是一个开源的 Comet 框架,Pushlet 使用了观察者模式:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。 ...