server-side 什么时候需要推送技术?
When does server-side push technology become necessary?
现在,我每 5 分钟通过一个普通的旧 HTTP 请求从服务器中提取大约 10 kB 的传感器数据。以后可能会想提高频率,每30秒发一个请求
server-side 什么时候需要推送技术?
显然,准确的答案取决于服务器 - 但解决该问题的一般方法是什么?使用推送技术绝对是有利的。但是,必须重写一些主要的代码。此外,我 感觉 30 秒仍然是一个足够长的时间间隔,而且开销(例如 HTTP headers 中的 cookie,...)不应导致过多的过剩流量。
推送技术适用于以下任一情况:
你需要客户端在有新数据时有低延迟(例如,不等待下一个轮询间隔,而是在有新数据时在几秒甚至毫秒内发现)。
如果您希望最大限度地减少服务器的开销或客户端的带宽使用或功耗,但客户端需要及时知道新数据何时可用。从移动客户端频繁轮询会消耗带宽和电池。
当数据可用性不可预测且定期轮询通常会导致没有数据可用时。如果每次轮询都会收集数据,并且中等轮询间隔的及时性对您的应用程序来说足够了,那么切换到推送通知机制并没有太大的好处。当轮询通常导致空请求时,轮询变得非常低效。
如果您定期发送数据并且您正在尝试最小化带宽。单个 webSocket 数据包比 HTTP 请求更有效,因为 HTTP 请求包括 headers、cookies 等...一旦 webSocket 连接已经建立,就不需要用单个 webSocket 数据包发送。
关于该主题的一些其他参考资料:
What are the pitfalls of using Websockets in place of RESTful HTTP?
websocket vs rest API for real time data?
Cordova: Sockets, PushNotifications, or repeatedly polling server?
现在,我每 5 分钟通过一个普通的旧 HTTP 请求从服务器中提取大约 10 kB 的传感器数据。以后可能会想提高频率,每30秒发一个请求
server-side 什么时候需要推送技术?
显然,准确的答案取决于服务器 - 但解决该问题的一般方法是什么?使用推送技术绝对是有利的。但是,必须重写一些主要的代码。此外,我 感觉 30 秒仍然是一个足够长的时间间隔,而且开销(例如 HTTP headers 中的 cookie,...)不应导致过多的过剩流量。
推送技术适用于以下任一情况:
你需要客户端在有新数据时有低延迟(例如,不等待下一个轮询间隔,而是在有新数据时在几秒甚至毫秒内发现)。
如果您希望最大限度地减少服务器的开销或客户端的带宽使用或功耗,但客户端需要及时知道新数据何时可用。从移动客户端频繁轮询会消耗带宽和电池。
当数据可用性不可预测且定期轮询通常会导致没有数据可用时。如果每次轮询都会收集数据,并且中等轮询间隔的及时性对您的应用程序来说足够了,那么切换到推送通知机制并没有太大的好处。当轮询通常导致空请求时,轮询变得非常低效。
如果您定期发送数据并且您正在尝试最小化带宽。单个 webSocket 数据包比 HTTP 请求更有效,因为 HTTP 请求包括 headers、cookies 等...一旦 webSocket 连接已经建立,就不需要用单个 webSocket 数据包发送。
关于该主题的一些其他参考资料:
What are the pitfalls of using Websockets in place of RESTful HTTP?
websocket vs rest API for real time data?
Cordova: Sockets, PushNotifications, or repeatedly polling server?