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种实现网页实时更新的方法:
- 网页推送
- WebSockets
- HTTP 流
- HTTP 长轮询
- HTTP 轮询
Facebook 使用长轮询,轮询超时为 50 秒。
这意味着 HTTP 请求是由浏览器向服务器完成的。如果没有更新可用,请求将被服务器挂起最多 50 秒。这样,一旦更新可用,就可以将其推送到客户端,而无需等待新的客户端请求(与正常轮询一样)。
我不知道如何正式陈述这个问题,因为我不知道这里实际发生了什么。 每当任何用户对我的 post 发表评论时,Facebook 都会发出如下请求以在我不做的情况下显示该评论 anything.How 他们会这样做吗?
https://0-edge-chat.facebook.com/pull?channel=p_100009456028304
这不能是推送通知,因为他们不断发出拉取请求(我使用浏览器中可用的开发人员工具进行了检查,尽管我
我不确定它是否是推送通知)。他们不断地向 URL.What 以上提出拉取请求,这种技术被称为?
正如评论中所说的那样,这称为长轮询。 简而言之,有5种实现网页实时更新的方法:
- 网页推送
- WebSockets
- HTTP 流
- HTTP 长轮询
- HTTP 轮询
Facebook 使用长轮询,轮询超时为 50 秒。 这意味着 HTTP 请求是由浏览器向服务器完成的。如果没有更新可用,请求将被服务器挂起最多 50 秒。这样,一旦更新可用,就可以将其推送到客户端,而无需等待新的客户端请求(与正常轮询一样)。