websphere:Comet的诱惑

它是翱翔天空的小鸟,它是划过长空的飞机……

Comet 是一个用于描述客户端和服务器之间的交互的术语,即使用长期保持的 HTTP 连接来在连接保持畅通的情况下支持客户端和服务器间的事件驱动的通信。自从 Alex Russell 在 Comet: Low Latency Data for the Browse中定义了此术语后,Comet 就成为了一个频繁出现的 Web 2.0 词汇。Comet 样式的应用程序将连接超时值设置为最大,并充分利用基础设施来提供比其他解决方案更快的浏览器更新速度,而且数据传输量更少——这听起来非常不错。但 Comet 样式连接也有缺点,在考虑使用之前您应该对这些缺点加以了解。

所解决的问题(以及带来的问题)

Web 2.0 领域的很多开发人员都需要处理的最为常见的问题是在服务器上为客户端生成的流化事件。解决此问题有三种常见的方式:

轮询

在此方法中,在浏览器中运行的 Javascript 按配置的间隔发送请求来检查是否有其应该接收的事件。服务器的响应会立即发回:已经发生的事件,或者告知没有相应的事件。如果客户端发送请求的间隔太短,则可能会带来很大的性能影响。如果间隔太长,事件通知可能晚于客户端的期望时间到达。

图 1. 轮询

Comet 长轮询或混合轮询

使用混合轮询的应用程序同时具备了 Comet 样式应用程序的一些优点和轮询样式的应用程序的一些优点。客户端的浏览器中的 Javascript 发起对后端服务器的初始数据请求。服务器几乎会立即响应,但会让套接字保持开放状态,以便完成响应写入(如果在其开放期间出现了响应)。例如,服务器可能会将套接字保持开放 30 秒钟,如果在此时间段内出现了事件,会立即将其反馈给客户端。但如果在此时间段内没有事件,或者客户端需要向服务器发送更多的数据,连接将关闭,客户端将在一段时间后重新打开另一个连接。有些实现打开读取通道作为长期 HTTP GET,而另外打开写入通道作为 HTTP POST,在需要时打开和关闭。Javascript 中的 XMLHttpRequest 经常采用这种方式实现。

图 2. 混合轮询

Comet 流或 Forever Frame

时间: 2024-08-18 10:28:35

websphere:Comet的诱惑的相关文章

WebSphere MQ集群中的迁移、故障转移和扩展

消息对SOA的影响 在任务:消息的前一部分中,我曾写到从点对点消息体系结构到面向服务的发展要求更新消息领域中的许多长期存在的最佳实践.这里,我们将考虑一个案例研究,以了解队列管理器的迁移.故障转移和扩展,以及在SOA的上下文中考虑这些活动时对命名约定.工具.管理流程和操作的影响. 首先让我们了解一些术语: 本讨论中的迁移包括任何重新承载队列管理器的情况,也许是为了更新基础硬件或者为了移动到不同的平台.迁移将始终涉及到构建新的队列管理器.将应用程序和队列逻辑地移动到新的队列管理器,以及最终使旧的队

为WebSphere Application Server Community Edition开发富Internet应用程序

本文配套源码 引言 Ajax(异步JavaScript和XML)术语用于表示一组支持创建富Internet应用程序 (Rich Internet Application) 的技术.通过使用这些技术,可以创建响应能力强且具有与桌面应用程序类似的丰富用户界面的Web应用程序.这些技术允许在后台以异步方式检索数据,而不会影响所显示的页面,而且可以仅请求数据,而不用请求整个HTML页面.可以使用现在的浏览器提供的XmlHttpRequest或等效对象进行此异步后台通信. IBM WebSphere Ap

Ajax、Comet、HTML 5 Web Sockets技术比较分析

九十年代中期,WWW以迅猛之势转眼跻身传播信息的主要渠道之一.浏览器的身影开始无处不在,用户也随之开始适应这种信息传播方式.显然,WWW提 供的应用平台能够赢得历史上任何一个平台都无法比及的用户量.但当时很难实现这样的目标是因为一些标准(HTML.HTTP等)都不很完善,这些标准设计 的时候都没有考虑到高度交互和富客户体验.最初的一些富在线应用基本上都是由Microsoft Exchange开发组实现的.96年以来,他们曾采用IFrame为邮件服务器系统提供Outlook类型的前端应用.这些早期

使用Java API处理WebSphere MQ大消息

WebSphere MQ 中处理大消息的方法 使用过 WebSphere MQ 的读者都知道,WebSphere MQ 对处理的单条消息的大小是有限制的,目前支持的最大消息是100M,而且,随着消息大小的增大,WebSphere MQ 处理的性能也会随之下降.从最佳实践来说,WebSphere MQ 传输大小为几K的消息其效率是最高的.那如何使 WebSphere MQ 能高效的处理大消息呢? WebSphere MQ 提供了处理大消息的两种方法:消息分片和消息分组.下面我们来看在使用 Java

使用ITCAM for Websphere对应用问题进行深入分析和诊断

引言 当前对基于 Java EE 应用问题的识别.隔离.诊断和修复是一件挺麻烦的事情,虽然在应用上线前,我们经过了严格的功能和性能测试,并通过严格的编码规范来保证应用的质量,但是经常会遇到上线之后一段时间内,应用系统总是处于不稳定的状态,然后又经过一段时间的缓慢分析才能发现一些应用开发中的问题,最后再修复它.除此之外,大多数应用都在其生命周期内会产生一些问题,而这些问题大多是偶发事件,经常会让维护和开发人员头疼不已,往往会消耗用户一些费用请技术专家去解决,耗时.耗力,而且知识也不能得到有效的积累

在WebSphere Application Server V7中为WS-Addressing提供JAX-WS 2.1支持

IBM WebSphere Application Server V7 包括了对 Java API for XML-Based Web Services (JAX-WS) 2.1 规范的支持.JAX-WS 2.1 是 Java Specification Request (JSR) 224 的维护版本,通过增加新功能对 JAX-WS 2.0 规范提供的功能进行了扩展.其中最重要的新功能就是 在应用程序编程接口(Application Programming Interface,API)中支持 W

WebSphere反向投资者: 用于加速应用程序部署的选项

在每篇专栏文章中,"WebSphere 反向投资者"将回答问题.提供指导和讨论与 WebSphere 产品相关的基础主题,经常会给出与流行的看法相悖的经过实践验证的建议. 送给您的礼物 又到假日了,这意味着每个人都在忙着完成当年的项目.购物,以及各种各样的传统年终任务.所有这些活动可能意味着您会欢迎任何节省时间的技巧,因为您可能有太多的事情需要处理,但是却只有太少的时间去全部完成.为了尽自己的一份力量帮助您提高效率,我将在本月的专栏中花些时间提供一些用于加速 IBM WebSphere

WebSphere Integration Developer指导教程 第4部分

WebSphere Integration Developer 指导教程 第4部分 在面向服务的应用程序中利用可视化代码片段和业务状态机 引言 在本系列的 上一部分中,您利用 WebSphere Integration Developer 构建了一个简单的面向服务的订单处理应用程序.您已经了解了如何结合使用其概念和工具来构造应用程序的构件.您使用业务状态机实现了一个组件 ProcessOrder,但对于在构建它时进行的具体操作只给出了非常少的背景信息.选择状态机来实现此组件的原因在于:对于每个订

用社交网络连接WebSphere MQ:列队管理器和MQ应用程序的Twitter通知

如今,社交网络无所不在 -- 为了与朋友联系,或是为了让自己与时俱进,抑或是为了让别人获知共同关心话题的最新进展.社交网络在企业中也很有用.本文将向您展示如何快速而轻松地在您的 WebSphere MQ 应用程序中使用社交网络软件(比如 Twitter)向广大的系统管理员或最终用户,甚至是向其他应用程序或中间件发送状态及问题信息.本文中的示例使用的是面向 WebSphere Application Server Community Edition 运行时的 JEE 技术(简单的消息驱动的 bea