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

时间:2017-06-25 14:31:30

标签: websocket server push long-polling overhead

现在,我每5分钟通过一个普通的旧HTTP请求从服务器中提取一些10 kB的传感器数据。将来,我可能希望每隔30秒增加一次请求的频率。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

    < / LI>
  2. 当您对降低服务器开销或带宽使用或客户端功耗感兴趣时,客户需要在新数据可用时及时了解。从移动客户端进行频繁轮询可以节省带宽和电量。

  3. 当数据可用性不可预测时,定期轮询通常会导致数据无法使用。如果每次轮询都会导致收集数据并且适度轮询间隔的及时性足以满足您的应用需求,那么切换到推送通知机制并没有大的收获。当民意调查通常导致空请求时,轮询变得非常低效。

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

  5. 关于该主题的其他一些参考文献:

    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