Facebook 实时如何运作?

How does Facebook real time works?

我不知道如何正式陈述这个问题,因为我不知道这里实际发生了什么。 每当任何用户对我的 post 发表评论时,Facebook 都会发出如下请求以在我不做的情况下显示该评论 anything.How 他们会这样做吗?

https://0-edge-chat.facebook.com/pull?channel=p_100009456028304

这不能是推送通知,因为他们不断发出拉取请求(我使用浏览器中可用的开发人员工具进行了检查,尽管我 我不确定它是否是推送通知)。他们不断地向 URL.What 以上提出拉取请求,这种技术被称为? 有人可以帮我理解这一点。 也许这个问题是重复的并且已经在堆栈中回答了 overflow.But 因为我不知道这是什么,所以很难搜索。(我试过了但找不到任何东西)

正如评论中所说的那样,这称为长轮询。 简而言之,有5种实现网页实时更新的方法:

  1. 网页推送
  2. WebSockets
  3. HTTP 流
  4. HTTP 长轮询
  5. HTTP 轮询

Facebook 使用长轮询,轮询超时为 50 秒。 这意味着 HTTP 请求是由浏览器向服务器完成的。如果没有更新可用,请求将被服务器挂起最多 50 秒。这样,一旦更新可用,就可以将其推送到客户端,而无需等待新的客户端请求(与正常轮询一样)。