【问题标题】:Websockets for non-realtime apps?用于非实时应用程序的 Websockets?
【发布时间】:2016-08-18 19:45:20
【问题描述】:
我最近一直在研究 Web 套接字,并计划在我的应用程序中使用它们,即使该应用程序不是实时的。我之所以这样做,主要是因为我想尝试一下,并进一步了解它可能会为应用程序的功能打开更多可能性。此外,我目前并不担心拥有一个用于移动设备的 API,但我认为如果我将来需要它,仍然可以通过 Web 套接字拥有某种 API。
但是对于生产中的应用程序,如果没有实时元素,是否有任何真正的理由会考虑实施 websockets?
除了实时性之外,HTTP 请求还有什么好处吗?
【问题讨论】:
标签:
node.js
websocket
socket.io
【解决方案1】:
HTTP 请求包含完整的 HTTP 标头。根据 cookie 负载,每个请求可能会达到几个 KB。与此相比,WebSocket 协议头是最小的。如果您有很多请求并且关心带宽,那么使用 WebSocket 是有意义的。
此外,(传统上)为每个请求协商一个 HTTP 连接,这意味着与具有持久连接的 WebSocket 相比,每个请求都有开销。连接建立需要时间(因此在实时应用程序中具有优势),但它也使用服务器上的资源。同样,根据您应用的通信模式,使用 WebSocket 可能是有意义的。