Comet与当前技术的兼容性

时间:2009-02-07 09:57:14

标签: ajax http comet server-push

我听说我可以使用Comet作为服务器推送技术以及我的Ajax代码来提高我的Web应用程序的性能。

这种Comet技术有多成熟?

是否所有网络服务器,编程语言和浏览器都支持它?

使用Comet有什么缺点?

3 个答案:

答案 0 :(得分:5)

虽然我认为你应该把它看作技术而不是技术,但它已经成熟了。

据我所知,所有网络服务器都支持它,但如果您正在构建一个彗星应用程序,则需要研究和配置您的特定Web服务器,因为对资源的需求有所不同。具体来说,与服务器的同步打开连接将会更多。在编程语言支持方面,如果您选择的服务器语言具有任何类型的阻塞或等待机制,则可以支持服务器推送。所有浏览器都支持它,从浏览器的角度来看,这只是一个需要很长时间才能返回的http(s)连接。

在浏览器世界中存在一些缺点,最大的可能是某些浏览器将特定URL的打开连接数限制为两个。因此,如果您有一个服务器阻塞连接打开等待某些推送数据,那么您只能使用一个可用于浏览器的连接来从服务器获取数据。这可以通过将资源分布在几个二级域中来缓解,以允许浏览器打开更多连接。

答案 1 :(得分:2)

“所有Web服务器都支持”是一个奇怪的声明。大多数实现都是服务器本身,您需要找到一个与您要使用的语言集成的服务器。

也就是说,我在一家公司工作,该公司建立一个与服务器集成的公司,特别是IIS。

如果您不想打扰处理服务器集成(处理不同语言,处理扩展等),请查看websync - 该服务可让您轻松集成任何语言,因为它是托管的,但是通过您自己的服务器支持proxying请求,以便您可以添加自己的业务逻辑,日志记录,权限等。

答案 2 :(得分:1)

在所有关于AJAX的炒作开始之前,Comet实际上已经被使用了:它只是一个旧想法的新名称。人们一直在使用隐藏的iframe来模拟服务器推送很长一段时间没有问题。