服务器推送技术(Comet)议题•简介•应用举例•服务器推送(ServerPush)方式•Comet应用实现模型•与客户端拉曳(ClientPull)的比较•comet优缺点•实现了comet的相关开源框架•pushlet简介•pushlet优缺点•pushlet广电项目的实际应用简介•服务器推送技术的基础思想是将浏览器主动查询信息改为服务器主动发送信息
服务器发送一批数据,浏览器显示这些数据,同时保证与服务器的连接
当服务器需要再次发送一批数据时,浏览器显示数据并保持连接
以后,服务器仍然可以发送批量数据,浏览器继续显示数据,依次类推
应用举例•监控系统:报警提示;•即时通信系统:其它用户登录、发送信息;•即时报价系统:后台数据库内容发生变化;•实现基于web的实时事件通知
服务器推送(ServerPush)方式•基于客户端套接口:采用RMI、CORBA或者自定义TCP/IP信息的applet来实现
•Comet:基于HTTP长连接、无须在浏览器端安装插件的技术
Comet应用实现模型•基于AJAX的长轮询(long-polling)即服务端阻断前一次对客户端的回应,在事件发生后将事件内容绑定在回应中返回给客户端,同时回应结束,此时客户端立即发送第二次请求,服务器阻塞回应等待下一次事件发生
•基于Iframe及htmlfile的流(streaming)方式通过在HTML页面里嵌入一个隐蔵帧,然后将这个隐蔵帧的SRC属性设为对一个长连接的请求,服务器端就能源源不断地往客户端输入数据
即服务器阻断客户端的回应,服务器没有关闭回应而是一直保留这这个到客户端的输出流
与客户端拉曳(ClientPull)的比较•客户端拉曳:客户端定时去查询服务器上的最新数据
优缺点•与客户端拉拽方式对比优点:服务器完全能够控制客户端更新数据的时间和频率
缺点:保持连接状态会浪费服务器端的资源