很多时候,客户要求其 Web 应用程序具有即时消息 (IM) 和其他客户端到客户端 (P2P) 通信等功能。通常,这在普通网络浏览器中是如何完成的?例如我看过的演示 谷歌波浪 (和 Gmail)能够从常规浏览器发送即时消息。这是通过 HTTP 实现的吗?或者 XmlHttpRequest (AJAX) 是否为此类通信提供必要的后端?

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

有帮助吗?

解决方案

通常,浏览器将轮询服务器以获取新消息。为了提高效率,经常采用的一种方法是“长轮询' (也可以看看 这个链接) - 服务器有任何情况都会立即响应;否则,它会等待,使连接保持打开状态一段时间。如果有消息传入,它会立即唤醒并发送消息,否则它会在几十秒后返回“不,请检查”。客户端立即重拨以返回长轮询状态。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top