我们有一个应用程序,对于某些状态,我们需要定期轮询服务器以获取新数据。我们发送给客户端的数据在 2-4K 之间,客户端必须多次询问才能发现服务器不会准备好任何新数据。
一种策略是在应用程序运行期间通过长轮询保持网络连接打开,就像我们进入这种状态一样。对于遭受周期性且可能频繁的网络连接不稳定的设备来说,长轮询似乎并不理想。
另一种是进行短轮询,其中包括每 30 秒左右询问服务器是否有新数据。
我看到人们讨论的第三个问题是使用推送通知,让服务器告诉客户端新的更新。但是,这似乎取决于用户是否允许应用启用推送通知。
在对设备电池友好的同时实现这一目标的最佳机制是什么?
我们使用 AFNetworking 作为我们的库来与服务器通信。