【问题标题】:When does server-side push technology become necessary?什么时候需要服务器端推送技术?
【发布时间】:2017-11-28 13:32:54
【问题描述】:

现在,我每 5 分钟通过一个普通的旧 HTTP 请求从服务器提取大约 10 kB 的传感器数据。将来,我可能想提高频率,每 30 秒发出一个请求。

什么时候需要服务器端推送技术?

显然,确切的答案取决于服务器 - 但解决此问题的一般方法是什么?使用推送技术绝对是有利的。但是,这必须是一些主要的代码重写。此外,我感觉 30 秒仍然是一个足够长的时间间隔,并且开销(例如 HTTP 标头中的 cookie,...)不应导致过多的剩余流量。

【问题讨论】:

  • 当您想在没有短/长轮询的开销/缺点的情况下进行推送时,需要某种形式的推送。
  • @OliverCharlesworth 所以你是说如果我没有遇到任何服务器问题(如高延迟或过多流量),就没有理由切换到推送技术?

标签: websocket server push long-polling overhead


【解决方案1】:

推送技术适用于以下任何情况:

  1. 当有新数据时,您需要客户端具有低延迟(例如,不等待下一个轮询间隔,而是在有新数据时在几秒甚至几毫秒内找出)。

  2. 如果您希望最大限度地减少服务器上的开销或客户端的带宽使用或功耗,但客户端需要以相当及时的方式知道新数据何时可用。从移动客户端进行频繁轮询会消耗带宽和电池。

  3. 当数据可用性不可预测并且定期轮询通常会导致没有数据可用时。如果每次轮询都导致数据被收集,并且适度轮询间隔的及时性对您的应用程序来说已经足够,那么切换到推送通知机制并没有太大的收益。当轮询通常导致空请求时,轮询变得非常低效。

  4. 如果您定期发送数据并尝试最小化带宽。单个 webSocket 数据包比 HTTP 请求更有效,因为 HTTP 请求包含标头、cookie 等...一旦 webSocket 连接已经建立,就不需要使用单个 webSocket 数据包发送。

    李>

关于该主题的其他一些参考资料:

What are the pitfalls of using Websockets in place of RESTful HTTP?

Ajax vs Socket.io

websocket vs rest API for real time data?

Cordova: Sockets, PushNotifications, or repeatedly polling server?

HTML5 WebSocket: A Quantum Leap in Scalability for the Web

【讨论】:

  • 非常感谢您的详细解答。 :-) 非常感谢您输入此内容,即使对于大多数人来说,我的问题似乎有点多余。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 2023-03-22
  • 1970-01-01
  • 2010-11-16
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
相关资源
最近更新 更多