当前位置:  开发笔记 > 前端 > 正文

Facebook聊天如何避免连续轮询服务器?

如何解决《Facebook聊天如何避免连续轮询服务器?》经验,为你挑选了1个好方法。

我试图了解Facebook的聊天功能如何在不连续策略服务器的情况下接收消息.

Firebug向我展示了一个持续坐在那里的GET XmlHttpRequest,等待来自服务器的响应.5分钟后,这从未超时.

它们如何防止超时?

一个AJAX请求可以无限期地坐在那里等待响应?

我可以用JSONRequest做到这一点吗?我在json.org看到了这个:

JSONRequest旨在支持双工连接.这允许服务器可以异步启动传输的应用程序.这是通过使用两个同时请求来完成的:一个发送,另一个接收.通过使用timeout参数,POST请求可以保持挂起状态,直到服务器确定它有及时发送数据.

或者除了使用JSONRequest之外,还有其他方法让AJAX调用只是坐在那里等待吗?



1> Mark Byers..:

Facebook使用一种现在称为Comet的技术将消息从服​​务器推送到客户端,而不是让客户端轮询服务器.

有许多方法可以实现,XMLHttpRequest长轮询只是一个选项.此方法背后的原理是客户端发送普通的XMLHttpRequest,但服务器在某些事件发生之前不响应(例如另一个用户发送消息),因此客户端被迫等待.当客户端收到响应时(或者请求超时),客户端只需创建一个新请求,以便它始终向服务器发出一个打开请求.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有