看起来 HTML 5 中的 Websockets 将成为服务器推送的新标准。
这是否意味着称为 Comet 的服务器推送 hack 将过时?
当 Websockets 很快(1-2 年)将在所有主要浏览器中可用时,我是否应该学习如何实现 comet?
然后我就可以使用 Beaconpush或 Pusher相反,直到那时对吗?
最佳答案
这个拼图有两 block :
问:“ cometd ”的客户端部分是否必要?
答:是的。即使在接下来的 2 年内,您也不会在“主要”浏览器中看到对 WebSockets 的完全支持。例如 IE8 不支持它,当前版本的 FireFox 也不支持。鉴于 IE6 于 2001 年发布并且至今仍在使用,我认为 WebSockets 不会很快完全取代 Comet。
问:“ cometd ”的服务器端部分是否有必要?
答:是的。 Comet 服务器旨在处理长期存在的 HTTP 连接,而“典型”Web 服务器则不会。即使客户端支持 WebSockets,服务器端仍需要设计以处理负载。
此外,正如“gustavogb”所提到的,至少目前 WebSockets 在很多 HTTP 代理中都没有得到适当的支持,所以在所有这些都得到更新之前,我们仍然需要某种回退机制。
简而言之:今天存在的 cometd 不会很快消失。
补充说明:目前在 Chrome 和 Safari 中实现的 WebSockets 版本是两个不同的草案,“当前”草案的工作仍在非常繁重的开发中,所以我什至不相信它是现实的说目前 WebSockets 支持是有效的。当然,出于好奇或学习,但不是真正的规范,至少现在还不是。
[更新,2/23/11]
当前发布的 Safari 版本有一个损坏的实现(它没有发送正确的 header ),Firefox 4 刚刚弃用了 WebSockets,所以它不会发布启用,并且 IE9 isn't looking good either .看起来 Chrome 是唯一一个具有工作规范草案的启用版本的,因此 WebSockets 还有很长的路要走。
关于HTML 5 Websockets 会取代 Comet 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3436555/