Websocket 何时需要服务器端推送技术?

Websocket 何时需要服务器端推送技术?,websocket,server,push,long-polling,overhead,Websocket,Server,Push,Long Polling,Overhead,现在,我每5分钟通过一个普通的HTTP请求从服务器上提取大约10KB的传感器数据。在将来,我可能希望增加每30秒发出一个请求的频率 何时需要服务器端推送技术 显然,确切的答案取决于服务器,但解决这个问题的一般方法是什么?使用推送技术显然是有利的。然而,问题是必须进行一些主要的代码重写。此外,我觉得30秒的时间间隔仍然足够长,开销(例如HTTP头中的Cookie…)不应该造成太多多余的流量。推送技术对于以下任何情况都很有用: 当有新数据时,您需要客户端具有较低的延迟(例如,不等待下一个轮询间隔,而

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

何时需要服务器端推送技术


显然,确切的答案取决于服务器,但解决这个问题的一般方法是什么?使用推送技术显然是有利的。然而,问题是必须进行一些主要的代码重写。此外,我觉得30秒的时间间隔仍然足够长,开销(例如HTTP头中的Cookie…)不应该造成太多多余的流量。

推送技术对于以下任何情况都很有用:

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

  • 当您希望最小化服务器上的开销或客户端上的带宽使用或功耗时,客户端需要相当及时地知道何时有新数据可用。从移动客户端进行频繁的轮询会消耗带宽和电池

  • 当数据可用性不可预测且定期轮询通常会导致数据不可用时。如果每次轮询都会收集数据,并且中等轮询间隔的及时性对于您的应用程序来说是足够的,那么切换到推送通知机制并不会带来很大的好处。当轮询通常导致一个空请求时,轮询就会变得非常低效

  • 如果您定期发送数据,并且尝试最小化带宽。单个webSocket数据包比HTTP请求更有效,因为HTTP请求包括头、cookie等。。。一旦建立了webSocket连接,就不需要与单个webSocket数据包一起发送

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


    如果您希望推送而不需要短/长轮询的开销/缺点,则需要某种形式的推送。@OliverCharlesworth您的意思是,如果我没有遇到任何服务器问题(如延迟太高或流量太大),就没有理由切换到推送技术?非常感谢您提供的详细答案。:-)我真的很感激你能把这个打出来,即使对大多数人来说,我的问题似乎有点多余。