服务器内容推送技术
1、 传统轮询:利用 WEB页面 META 刷新机制,指定一定时间间隔进行页面装载服务。
不足:用户体验差,服务器压力大
2、 Ajax 轮询:采用异步响应机制
不足:有延迟,服务器压力比较大,客户端主动请求
3、 Comet:建立到服务器的长连接机制, 服务器推送技术是保持原有的 HTTP 协议不 变,在
服务器端改变处理方式,使得服务器能够使用浏览器已经打开的 HTTP 连接,主动向浏览器
发送消息。这里关键的技术是要保持原有的 HTTP 连接不断。一旦拥有持久的连接,服务器
就可以根据自己的数据更新,随时地向客户端发送最新的信息。
Comet 的实现是基于异步请求服务 (ARP)之上的, 因此整个框架结构仍然符合 ARP的模式。
将“服务器推 ”应用在 Web 程序中,首先考虑的是如何在功能有限的浏览器端接收、处
理信息:
1. 客户端如何接收、 处理信息, 是否需要使用套接口或是使用远程调用。 客户端呈现
给用户的是 HTML 页面还是 Java applet 或 Flash 窗口。如果使用套接口和远程调用,
怎么和 JavaScript 结合修改 HTML 的显示。
2. 客户与服务器端通信的信息格式,采取怎样的出错处理机制。
3. 客户端是否需要支持不同类型的浏览器如 IE、 Firefox ,是否需要同时支持
Windows 和 Linux 平台。
基于客户端套接口的 “服务器推 ”技术
Flash XMLSocket
这种方案实现的基础是:
1. Flash 提供了 XMLSocket 类。
2. JavaScript 和 Flash 的紧密结合:在 JavaScript 可以直接调用 Flash 程序提供的接
口。
具体实现方法:在 HTML 页面中内嵌入一个使用了 XMLSocket 类的 Flash 程序。
JavaScript 通过调用此 Flash 程序提供的套接口接口与服务器端的套接口进行通信。
JavaScript 在收到服务器端以 XML 格式传送的信息后可以很容易地控制 HTML 页面的
内容显示。
Javascript 与 Flash 的紧密结合,极大增强了客户端的处理能力。从 Flash 播放器
V7.0.19 开始,已经取消了 XMLSocket 的端口必须大于 1023 的限制。 Linux 平台也支
持 Flash XMLSocket 方案。但此方案的缺点在于:
1. 客户端必须安装 Flash 播放器;
2. 因为 XMLSocket 没有 HTTP 隧道功能, XMLSocket 类不能自动穿过防火墙;
3. 因为是使用套接口, 需要设置一个通信端口, 防火墙、代理服务器也可能对非 HTTP
评论0
最新资源