我正在编写一个应用程序,它在一天中连接并不断与我们的服务器通信。
在这一天,用户可能会或可能不会失去他们的连接,超出范围等我想知道处理这些实例的最佳方式是什么,关于我的代码行为方式以及我通知用户的方式。
我正在编写一个应用程序,它在一天中连接并不断与我们的服务器通信。
在这一天,用户可能会或可能不会失去他们的连接,超出范围等我想知道处理这些实例的最佳方式是什么,关于我的代码行为方式以及我通知用户的方式。
*注意:我假设您想通过 HTTP 执行网络操作
读取
对于读取的数据,这取决于您对数据变化速度的假设。
对于可变数据(预计每天更改几次的数据),请使用 SDURLCache。SDURLCache 提供 HTTP 本地缓存。如果你将它与 AFNetworking 连接起来,那么它也会遵守标准的 HTTP 缓存行为(过期标头、etag 等)。
对于“静态”数据,您可以将数据与应用程序本地捆绑在一起,并通过 HTTP 定期检查更新。
在任何一种情况下,您都应该尝试(如果可能)将一些数据与应用程序打包,以便在安装应用程序的那天,它可能根本不需要网络连接来运行。
写
对于写入,处理此问题的最佳方法是将所有写入排队并在适当的时间发布它们。实现队列相对简单,很大程度上取决于如何在本地存储东西。一种方法是在 SQLite db 表中设置标志以指示需要发布到服务器端的数据元素。另一个可能是构建文档并将它们写入磁盘,当有连接时,有一个单独的调度线程将它们发布到服务器端。