如果没有客户端交互,GMail Chat如何能够发出AJAX请求?

cha*_*hat 59 ajax gmail chat comet

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

Pab*_*dez 42

该技术被称为"彗星",但也被称为"服务器推送","反向ajax"等.

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

此外, 与DWR的Joe Walker进行了非常好的演讲,在那里他谈到了彗星.


syb*_*eon 8

正如您正确指出的那样,HTTP要求客户端"拉"数据.Gmail仍然可以通过使用计时器来"触发"服务器中的数据来触发HTTP操作,而不是要求用户点击某些内容.所以,它似乎是自动的,但它仍然是客户端发起的.

  • Comet仍然是客户端发起的AFAIK - 它只是服务器保持连接打开,直到它有一些有趣的内容而不是立即返回响应. (7认同)

Ank*_*kur 5

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