1

很多时候,客户要求他们的 Web 应用程序提供即时消息 (IM) 和其他客户端到客户端 (P2P) 通信等功能。通常这是如何在普通的网络浏览器中完成的?例如,我看到了能够从常规浏览器进行即时通讯的Google Wave (和 Gmail)的演示。这是通过HTTP吗?或者 XmlHttpRequest (AJAX) 是否为这种通信提供了必要的后端?

最重要的是,我想知道服务器如何“唤醒”远程客户端,比如说发送 IM?还是客户端必须不断“轮询”消息服务器以获取新的 IM?

4

1 回答 1

3

通常,浏览器会轮询服务器以获取新消息。一种通常用来提高效率的方法是“长轮询”(另请参阅此链接)-如果服务器有任何东西,服务器会立即响应;否则,它会等待,保持连接打开一段时间。如果有消息进来,它会立即唤醒并发送它,否则它会在几十秒后返回“nope,check back”。他们的客户端立即重拨以返回长轮询状态。

于 2009-08-06T18:13:19.447 回答