WEB开发网
开发学院网页设计JavaScript Comet:基于 HTTP 长连接的“服务器推”技术 阅读

Comet:基于 HTTP 长连接的“服务器推”技术

 2009-10-11 00:00:00 来源:WEB开发网   
核心提示: 服务器端事件队列管理 pushlet 在服务器端使用 Java Servlet 实现,其数据结构的设计框架仍可适用于 php、C 编写的后台客户端,Comet:基于 HTTP 长连接的“服务器推”技术(9),Pushlet 支持客户端自己选择使用流、拉(长轮询)、轮询方式,服务器端根据客户选择的

服务器端事件队列管理

pushlet 在服务器端使用 Java Servlet 实现,其数据结构的设计框架仍可适用于 php、C 编写的后台客户端。

Pushlet 支持客户端自己选择使用流、拉(长轮询)、轮询方式。服务器端根据客户选择的方式在读取事件队列(fetchEvents)时进行不同的处理。“轮询”模式下 fetchEvents() 会马上返回。”流“和”拉“模式使用阻塞的方式读事件,如果超时,会发给客户端发送一个没有新信息收到的“heartbeat“事件,如果是“拉”模式,会把“heartbeat”与“refresh”事件一起传给客户端,通知客户端重新发出请求、建立连接。

客户服务器之间的会话管理

服务端在客户端发送 join 请求时,会为客户端分配一个会话 ID, 并传给客户端,然后客户端就通过此会话 ID 标明身份发出 subscribe 和 listen 请求。服务器端会为每个会话维护一个订阅的主题集合、事件队列。

服务器端的事件源会把新产生的事件以多播的方式发送到每个会话(即订阅者)的事件队列里。

小结

本文介绍了如何在现有的技术基础上选择合适的方案开发一个“服务器推”的应用,最优的方案还是取决于应用需求的本身。相对于传统的 Web 应用, 目前开发 Comet 应用还是具有一定的挑战性。

“服务器推”存在广泛的应用需求,为了使 Comet 模型适用于大规模的商业应用,以及方便用户构建 Comet 应用,最近几年,无论是服务器还是浏览器都出现了很多新技术,同时也出现了很多开源的 Comet 框架、协议。需求推动技术的发展,相信 Comet 的应用会变得和 AJAX 一样普及。

上一页  4 5 6 7 8 9 

Tags:Comet 基于 HTTP

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接