HTML 5 Websockets将取代Comet?

nev*_*ame 32 html comet server-push websocket

看起来HTML 5中的Websockets将成为服务器推送的新标准.

这是否意味着服务器推送被称为Comet的黑客将被淘汰?

当所有主流浏览器中的Websockets即将推出(1 - 2年)时,我是否有理由学习如何实现彗星?

然后我可以使用BeaconpushPusher直到那时为止?

jve*_*ema 17

这个拼图有2件:

问:"彗星"的客户端部分是否必要?

答:是的.即使在接下来的两年内,您也不会在"主要"浏览器中看到对WebSockets的完全支持.例如,IE8不支持它,当前版本的FireFox也不支持它.鉴于IE6于2001年发布,并且它仍然在今天,我不认为WebSockets会很快完全取代彗星.

问:"彗星"的服务器端部分是否必要?

答:是的.Comet服务器旨在处理长期存在的HTTP连接,其中"典型"Web服务器不能.即使客户端支持WebSockets,服务器端仍然需要设计来处理负载.

另外,正如所提到的"gustavogb",至少现在WebSockets在很多HTTP代理中都没有得到适当的支持,所以在这些都得到更新之前,我们仍然需要某种回退机制.

简而言之:彗星,如今存在,不会很快消失.

另外需要注意的是:目前在Chrome和Safari中实现的WebSockets版本是两种不同的草案,而且"当前"草案的工作仍处于非常繁重的发展阶段,所以我甚至不相信这是可行的. WebSockets支持目前正在运行.作为一种好奇心或学习,当然,但不是真正的规范,至少还没有.

[更新,2/23/11]

目前发布的Safari版本有一个破坏的实现(它没有发送正确的标题),Firefox 4刚刚弃用WebSockets,所以它不会发布,IE9看起来也不好看.看起来Chrome是唯一一个具有工作,启用版本的草案规范的人,因此WebSockets还有很长的路要走.

  • 谷歌是开发者最好的朋友.Firefox和IE永远不会自动更新,所以即使在2012年,我也几乎看不到超过50%的冲浪者拥有WebSocket支持.(每个人都去镀铬!) (3认同)

Dan*_*llo 12

这是否意味着服务器推送被称为Comet的黑客将被淘汰?

当Web浏览器无法打开与服务器进行双向通信的简单套接字时,WebSockets能够替换Comet,AJAX,Long Polling和所有黑客来解决问题.

当WebSockets很快在所有主流浏览器中都可用时,我有没有理由学习如何实现彗星?

这取决于"很快"对你意味着什么.例如,没有版本的Internet Explorer(IE 9之前版本)支持WebSockets API.


更新:

这并不是一个详尽的答案.查看其他答案,尤其是@jvenema,以进一步了解该主题.

  • -1; 虽然WebSockets能够将*客户端*解决方案替换为这些问题,但它不会取代*服务器*方面的需求,直到1)所有主要浏览器和2)所有http代理都支持它,它不会被淘汰; 即便如此,我预计"黑客"仍将保持一致,以实现向后兼容 (2认同)
  • @jvenema:是的,我同意你的回答.尽管如此,我的答案不应被视为对该主题的详尽解释,即使它被选择为OP接受.我也相信"彗星黑客等"将会存在很长时间. (2认同)