2009-01-29 138 views
10

是否有一种通用的方法来实现JavaScript应用程序的一部分并为服务器提供持久连接?无论客户端在防火墙后面,我都需要服务器能够将数据推送到客户端。在此先感谢与客户端的持久连接

回答

13

请参阅Comet - 这就像ajax,但它保持连接打开,以便服务器可以将信息推送到客户端。

请注意,符合标准的浏览器将仅保留2个连接(注意:most modern browsers no longer comply)到特定域(默认情况下),因此您可能需要拆分域(例如www.yourdomain.com和comet.yourdomain.com)您不会显着减慢页面的加载速度。或者,您可以确保直到其他所有内容加载完毕才能打开彗星连接。这只是要小心的事情。

2

随着HTTP,连接必须从客户端开始。但有一些技术可以让服务器保持连接打开并根据需要刷新数据。

这些通常被认为是CometHTTP Streaming体系结构。

2

您可以使用Comet编程技术。基本上,页面调用服务器,直到服务器有东西要发送(此时客户端立即进行相同的调用)才会返回。这样服务器就可以随时将内容推送到客户端。

支持因平台而异,更多的是服务器问题,而不是客户端。