我正在考虑编写一个实时web应用程序,需要能够将消息推送到浏览器。当我第一次读到Comet时,人们似乎认为它是一种脆弱和不成熟的方法,因为浏览器支持薄弱。今天,它似乎是一种成熟实用的技术。但是据我所知,浏览器现在对基本方法(长轮询,iframes和脚本标签)的支持并不比06年这个想法刚开始流行时更好。
当然,在服务器端管理所有这些连接是很困难的,但是Comet框架解决了这个问题(甚至在06年就可以用Twisted这样的东西来解决这个问题)。那么到底是怎么回事呢:浏览器中对Comet的支持有什么问题吗?还是说当时的人错了?
还有:我最近读了一篇~2010年的博客文章,总结了Comet技术的状态,详细介绍了每种方法。这听起来好像这些方法都不可行。这篇文章非常有说服力,这就是为什么我仍然对Comet感到不安。关于这个博客,我唯一记得的是它的背景很暗(棕色或黑色)。还有人看到那个帖子吗?我真的很想再读一遍
我认为comet现在是非常可行的,每个浏览器都支持长轮询,所以你有一个通用的回退仍然可以工作,并且每个浏览器中都有比长轮询更高效的方法。
你只是不经常看到它,因为在每个浏览器中支持不同的方法是一项相当大的任务,谷歌和facebook有资源来做这件事,但你的普通网页开发者会浪费很多时间而收效甚微。只有那么多应用程序真正需要comet提供的实时通信。
我认为现在有了像APE和cometD这样的框架,它们为你提供了后端和客户端实用程序,你会看到更多的人能够承担复杂的任务。无论如何,彗星也不可能是不成熟的,它只是一种以一种非常新颖的方式使用现有功能的技术。
我不认为浏览器在comet方面有太大变化,一切都和几年前一样。它所有的丑陋都完好无损。WebSockets将是最终的答案,所以浏览器制造商并不急于修复评论,但这个"标准"仍在不断变化。