javascript - 长轮询 vs Websockets

标签 javascript websocket long-polling polling

<分区>

我开始开发一个软件,使用 html + js 编码的应用程序我需要从服务器(java 代码)发送这个应用程序通知,该应用程序使用 nginx 进行路由并托管在 AWS 中。 我调查了这个实时通知的主题,我对网络套接字和长轮询感到困惑 In what situations would AJAX long/short polling be preferred over HTML5 WebSockets?

在一些文章中我读到长轮询是一个古老的东西,不像 websocket 是更新更好的(In what situations would AJAX long/short polling be preferred over HTML5 WebSockets?) 我开始检查 gmail facebook whatsapp 网页的元素。 我看到使用长轮询的 Gmail+ facebook 与使用 Websocket 的 whatsapp 不同。 那么为什么这些公司仍然选择使用长轮询呢? https://www.quora.com/Does-Facebook-use-WebSockets-for-any-of-their-applications-Are-they-really-useful-at-that-scale-especially-since-they-impose-a-stateful-architecture

最佳答案

一些公司仍在使用长轮询的几个原因:

  • WebSocket 支持仍然不是 100%,尽管不支持的旧版浏览器正在慢慢消失。因此,如果您是像 Google 这样的公司,其产品必须在几乎所有浏览器上运行,您仍然需要非 WebSocket 后备解决方案。
  • 如果您已经有了可行的解决方案,那么迁移到 WebSocket 的成本可能会超过它带来的节省。

关于javascript - 长轮询 vs Websockets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36290520/

相关文章:

javascript - 如何更改 JavaScript 中的时区?

javascript - 如何访问和使用 do while 循环的返回值?

node.js - nginx + node + ssl + websockets,在一台服务器上

javascript - 无法使用 JavaScript 删除复选框

sockets - Elixir代码上的Websocket

android - 适用于 Android 和 iOS 的 MQTT over websocket

Node.js 长轮询逻辑有帮助!

php - 这是合法的长轮询方法吗?

Python http requests.exceptions.ConnectionError : ('Connection aborted.' , RemoteDisconnected ('Remote end closed connection without response' ))

javascript - 检查用户是否刷新、返回、关闭浏览器等。socket.io