【发布时间】:2010-10-06 03:08:12
【问题描述】:
我听说我可以使用 Comet 作为服务器推送技术以及我的 Ajax 代码来提高我的 Web 应用程序的性能。
Comet 技术有多成熟?
所有网络服务器、编程语言和浏览器都支持它吗?
使用 Comet 有什么缺点?
【问题讨论】:
标签: ajax http comet server-push
我听说我可以使用 Comet 作为服务器推送技术以及我的 Ajax 代码来提高我的 Web 应用程序的性能。
Comet 技术有多成熟?
所有网络服务器、编程语言和浏览器都支持它吗?
使用 Comet 有什么缺点?
【问题讨论】:
标签: ajax http comet server-push
它是成熟的,虽然我认为你应该将它更多地视为一种技术而不是技术。
据我所知,所有网络服务器都支持它,但如果您正在构建彗星应用程序,则需要研究和配置您的特定网络服务器,因为对资源的需求有点不同。具体来说,将有更多同时打开的连接到您的服务器。在编程语言支持方面,如果您选择的服务器语言有任何阻塞或等待机制,您可以支持 server-push。所有浏览器也都支持,从浏览器的角度来看,这只是一个http(s)连接,需要很长时间才能返回。
有几个缺点,在浏览器世界中,最大的可能是某些浏览器将特定 URL 的打开连接数限制为两个。因此,如果您有一个服务器阻塞连接打开等待一些推送的数据,您将只有一个连接可供浏览器从服务器获取数据。这可以通过将资源分散到几个二级域以允许浏览器打开更多连接来缓解。
【讨论】:
“所有网络服务器都支持”有点奇怪。大多数实现本身就是一个服务器,您需要找到一个与您要使用的语言集成的服务器。
也就是说,我在一家公司工作,该公司构建了一个与服务器集成的服务器,特别是 IIS。
如果您不想费心处理服务器集成(处理不同的语言、处理缩放等),请查看 websync - 该服务可让您轻松集成任何语言,因为它是托管的,但支持 @ 987654322@ 通过您自己的服务器请求,因此您可以添加自己的业务逻辑、日志记录、权限等。
【讨论】:
Comet 实际上在 AJAX 大肆宣传之前就已经在使用:它只是旧想法的新名称。长期以来,人们一直在使用隐藏的 iframe 来模拟服务器推送,没有出现任何问题。
【讨论】: