Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Facebook背后的概念(数据传输)是什么;现场聊天?_Javascript_Facebook_Optimization_Xmpp_Xmlhttprequest - Fatal编程技术网

Javascript Facebook背后的概念(数据传输)是什么;现场聊天?

Javascript Facebook背后的概念(数据传输)是什么;现场聊天?,javascript,facebook,optimization,xmpp,xmlhttprequest,Javascript,Facebook,Optimization,Xmpp,Xmlhttprequest,我最近加入了Facebook(我知道我迟到了),昨晚醒来时我感到很惊讶。它看起来像是实时聊天模块 每隔一秒钟左右“查找”一次新的应答消息。在我看来,这有点太快了。我不知道他们是如何设法不得到他们的许可的 服务器处于活动状态 我想知道背后的概念是什么。或者至少,你们认为他们是如何做到的 我还没有运行Firebug来查看用户发送的XHR请求 我相信,如果将实时聊天保存在Iframe中,XHRs将发送到另一个HTTP服务器,那么它将保留“main” 服务器“冷却器”。此外,使用Iframe方法将避免由

我最近加入了Facebook(我知道我迟到了),昨晚醒来时我感到很惊讶。它看起来像是实时聊天模块 每隔一秒钟左右“查找”一次新的应答消息。在我看来,这有点太快了。我不知道他们是如何设法不得到他们的许可的 服务器处于活动状态

我想知道背后的概念是什么。或者至少,你们认为他们是如何做到的

我还没有运行Firebug来查看用户发送的
XHR
请求

我相信,如果将实时聊天保存在Iframe中,XHRs将发送到另一个HTTP服务器,那么它将保留“main” 服务器“冷却器”。此外,使用Iframe方法将避免由于“main”使用cookie而发送太多带宽 网站

我不想要这样的回答:“他们有数百台服务器每分钟接收数百万个请求,他们可以生存。”。 我肯定我错过了他们的一些巫术P


不管怎样,有什么想法吗?

也许他们在使用WebSocket或类似的东西,你知道,保持与服务器的持久连接,而不是每次需要发送数据时打开/关闭HTTP连接。

也许他们在使用WebSocket或类似的东西,你知道,保持与服务器的持久连接,而不是在每次需要发送数据时打开/关闭HTTP连接。

您可能希望通过谷歌搜索您可能希望通过谷歌搜索上次我用firebug查看它时,您可能希望通过谷歌搜索,这显然是几个月前的事了,他们似乎在使用彗星方法。有一个XHR打开长达一分钟,它要么返回新数据,要么在一分钟结束时什么都没有。

我上一次用firebug查看它时,公认是几个月前,他们似乎在使用comet方法。XHR打开长达一分钟,可能会返回新数据,也可能在一分钟后什么都没有。

此处提供了相关信息:

这些幻灯片几乎解释了一切:

信息可从以下位置获得:

这些幻灯片几乎解释了一切:

仅供参考,上次我听说Facebook有70000台服务器。最后,我听说Facebook有70000台服务器。这样一来,他们仍然会行动迟缓。哦,这很有趣。谢谢你的提示。这很可能是他们至今仍在使用的方法。我会查的。但现在我想到了另一个问题。这不是一个非常“服务器杀手”的概念吗?让一个连接保持活跃一段时间,哪怕只有一分钟。即使有70000台服务器(谢谢Dustin),它也需要一个不同寻常的连接队列管理。我敢打赌,他们的聊天系统与其他任何东西都是隔离的,系统为此进行了优化。如果每个打开的连接实际上没有做任何事情,那么您可能会使它的开销很小。但是我不知道这件事。哦,那很有趣。谢谢你的提示。这很可能是他们至今仍在使用的方法。我会查的。但现在我想到了另一个问题。这不是一个非常“服务器杀手”的概念吗?让一个连接保持活跃一段时间,哪怕只有一分钟。即使有70000台服务器(谢谢Dustin),它也需要一个不同寻常的连接队列管理。我敢打赌,他们的聊天系统与其他任何东西都是隔离的,系统为此进行了优化。如果每个打开的连接实际上没有做任何事情,那么您可能会使它的开销很小。但我对此一无所知。不过,这个解决方案不是跨浏览器的。也许他们将WebSocket用于功能强大的浏览器,而其他浏览器则使用其他功能。不过,这种解决方案不是跨浏览器的。也许他们在功能强大的浏览器中使用WebSocket,在其他浏览器中使用其他东西。问题是,如何在浏览器中实现XMMP?:)Bosh将XMPP流量转换为HTTP流量。。。Strophe.js发挥了神奇的作用:)问题是,如何在浏览器中实现XMMP?:)Bosh将XMPP流量转换为HTTP流量。。。Strophe.js发挥了神奇的作用:)