所有HTTP响应都要求客户端启动它们,甚至是那些使用AJAX创建的响应。但是,GMail的聊天功能可以接收来自其他用户的消息,即使我只是坐在舒适的电脑椅上观看但没有与浏览器交互。他们是怎么做到的?
答案 0 :(得分:42)
该技术被称为“彗星”,但也被称为“服务器推送”,“反向ajax”等。
它是关于将数据从服务器推送到浏览器,保持http连接存活。在wikipedia article(English version)上查找有关它的更多信息。
这里还有来自DWR的Joe Walker pretty good presentation,他在那里谈到彗星。
答案 1 :(得分:8)
正如您正确指出的那样,HTTP要求客户端“拉”数据。 Gmail仍然可以通过使用计时器来“触发”服务器中的数据来触发HTTP操作,而不是要求用户点击某些内容。所以,它似乎是自动的,但它仍然是客户端发起的。
答案 2 :(得分:5)
是的彗星是正确的。 Google Web Toolkit Applications by Ryan Dewsbury解释了如何在第9章中创建基于Comets的Instant Messenger应用程序。