59

所有 HTTP 响应都需要客户端启动它们,即使是使用 AJAX 做出的响应。但是 GMail 的聊天功能能够接收来自其他用户的消息,即使我只是坐在舒适的电脑椅上观看但不与浏览器交互。他们是如何做到的呢?

4

3 回答 3

42

该技术被称为“彗星”,但也被称为“服务器推送”、“反向 ajax”等。

它是关于将数据从服务器推送到浏览器,保持 http 连接处于活动状态。在维基百科文章英文版)上找到更多信息。

这里还有来自 DWR 的 Joe Walker 的一个很好的演示 ,他谈到了彗星。

于 2009-04-09T03:58:20.780 回答
8

正如您正确指出的那样,HTTP 要求客户端“拉取”数据。Gmail 仍然可以通过使用计时器触发 HTTP 操作而不是要求用户单击某些内容来从服务器“提取”数据。所以,它可能看起来是自动的,但它仍然是客户端启动的。

于 2009-04-09T03:56:31.377 回答
5

是的,彗星是正确的。Ryan Dewsbury 的 Google Web Toolkit Applications在第 9 章中解释了如何创建基于 Comets 的 Instant Messenger 应用程序。

于 2009-04-09T04:06:22.507 回答