Comet与当前技术的兼容性

5
我听说我可以在我的Ajax代码中使用Comet作为服务器推送技术,以提高我的Web应用程序的性能。
这个Comet技术成熟吗?
它是否被所有Web服务器、编程语言和浏览器支持?
使用Comet有什么缺点?
3个回答

5

这是一项成熟的技术,但我认为你应该将其视为一种技巧而非技术。

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

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


彗星在所有浏览器上都能工作吗?是否有(旧的)浏览器无法逐步将内容加载到DOM中? - Pacerier

2
“被所有Web服务器支持”是一个有点奇怪的说法。大多数实现都是一个服务器本身,你需要找到一个与你想使用的语言集成的服务器。
话虽如此,我在一家公司工作,他们建立了一个与服务器集成的服务器,具体来说是IIS。
如果你不想麻烦地处理服务器集成(处理不同的语言,处理扩展等),可以看看websync - 这个服务让你很容易地集成任何语言,因为它是托管的,但支持代理请求通过你自己的服务器,这样你就可以添加自己的业务逻辑、日志记录、权限控制等。

1

Comet在所有关于AJAX的炒作之前实际上已经在使用:这只是一个旧想法的新名称。人们长期以来一直在使用隐藏的iframe来模拟服务器推送而没有问题。


你有“长时间无问题工作”的参考资料吗?Comet在所有浏览器上都能工作吗?是否存在(旧的)浏览器不会逐步加载内容到DOM中? - Pacerier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接