许多时候,客户要求他们的web应用程序具有即时消息(IM)和其他客户对客户(P2P)通信等功能。通常,在普通的web浏览器中是如何做到这一点的?例如,我看到过Google Wave (和Gmail)的演示,它们能够从常规浏览器进行即时通信。这是通过HTTP吗?或者,XmlHttpRequest (AJAX)是否为这种通信提供了必要的后端?
最重要的是,我想知道服务器如何“唤醒”远程客户端,比如说发送即时消息?或者客户端必须一直“轮询”消息服务器以获取新的IM?
发布于 2009-08-06 18:13:19
通常,浏览器将轮询服务器以获取新消息。为了提高效率,经常采用的一种方法是“long poll”(另请参阅this link) --如果服务器有任何东西,它会立即响应;否则,它会等待,使连接保持打开一段时间。如果收到一条消息,它会立即唤醒并发送它,否则它会在几十秒后返回“不,请检查”。客户端立即重新拨号以返回到长轮询状态。
https://stackoverflow.com/questions/1240503
复制相似问题