【发布时间】:2026-01-22 05:55:01
【问题描述】:
在处理网络问题时,我正在查看Apple networking guidelines that suggest that the user should try to work with the highest level of abstraction possible。
我正在开发一个客户端-服务器应用程序,其中服务器是主设备,而 iOS 设备是从设备。它们通过 HTTP 进行通信,建立在应用程序使用会话的整个生命周期内都存在的连接。应用程序和服务器通过此连接同步资产。
我的问题是 - 哪种抽象级别适合通过 HTTP 实现双向同步? 是套接字、NSURLConnection、一些 AFNetworking 子类、输入/输出流吗?
【问题讨论】:
-
我认为这首先是关于您的应用程序问题域的问题。在不知道您需要同步多少数据、如何表达这些更改或您想要提供什么样的用户体验的情况下,没有足够的信息来提出准确的建议。无论您做什么,都将在响应能力、功耗、数据一致性和实施成本之间进行权衡。你想优先考虑什么?
-
大部分数据是1Kb以下的字符串和JSON对象。理想情况下,我希望保留数据的本地缓存,以防止每次呈现视图控制器时都必须进行网络调用。这意味着我需要考虑某种后台同步,在应用程序运行并启动界面更新时每 X 秒检查一次服务器更新。
-
特别是,我担心服务器无法通过 IP 轻松定位特定设备,因此我希望设备启动某种连接,并且服务器保持此连接处于活动状态以进行数据交换.不过我不确定这是一种什么样的联系。
标签: ios http network-programming synchronization afnetworking-2