是否可以让 Web 服务器在没有 Comet 的情况下向 Web 浏览器发送消息?
像 Facebook 和谷歌这样的主要网络公司都为此目的使用 Comet,如果为主要浏览器启用 tcp 连接,这似乎是一个等待消失的丑陋黑客。
是否可以让 Web 服务器在没有 Comet 的情况下向 Web 浏览器发送消息?
是的,它可以通过 Silverlight、Flex、Flash 和 Java 小程序实现。
像 Facebook 和谷歌这样的主要网络公司都为此目的使用 Comet,如果为主要浏览器启用 tcp 连接,这似乎是一个等待消失的丑陋黑客。
HTML 5 Web Sockets 的 TCP 连接不能解决问题。您会看到很多人在工作场所、大学或学校使用 Google 和 Facebook,而防火墙通常会阻止非标准端口和非 HTTP 流量。因此,将消息发送到 Web 浏览器的解决方案必须通过 HTTP 工作,并且通常看起来像 HTTP。这就是为什么 Google 和 Facebook 使用 Comet 并将继续这样做,否则他们将无法接触到大部分用户。事实上,一些防火墙和反向代理会关闭长时间运行的 HTTP 连接,因此 Ajax 轮询连接通常用作后备。如果您正在寻找能够通过 Reverse Ajax 向浏览器发送消息的服务器,我可以建议类似StreamHub Reverse Ajax。
由于“彗星”是任何使用现有 http 协议来模拟数据推送的人为术语,我担心您无能为力。
唯一的解决方案是对当前协议的“增强”或一些广泛使用的可能基于插件的解决方案......你可以使用 java。但这会引发其他问题,因为基本上您需要在该浏览器上提供传入连接。
Comet 可以实现为一个长轮询 ajax 调用,所以它成为一个语义问题。 例如,这里是一个 jquery 插件,它在 jQuery 的 ajax 调用上使用 Bayeux 协议实现 Comet。