5

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

Comet 技术有多成熟?

所有 Web 服务器、编程语言和浏览器都支持它吗?

使用 Comet 的缺点是什么?

4

3 回答 3

5

它很成熟,尽管我认为您应该将其更多地视为一种技术而不是技术。

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

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

于 2009-03-08T05:37:11.533 回答
2

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

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

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

于 2009-07-27T21:36:40.010 回答
1

Comet 实际上在 AJAX 大肆宣传之前就已经在使用:它只是一个旧想法的新名称。长期以来,人们一直在使用隐藏的 iframe 来模拟服务器推送而没有问题。

于 2009-02-07T11:38:52.847 回答