我试图找到一种方法来打开与Web服务的连接,并让该服务根据需要发送JSON对象。使用AFNetworking为单个请求处理多个JSON响应
说我从服务请求20配置文件。与其等待服务构建全部20个服务,该服务将构建第一个配置文件并将其重新放回到客户端,直到创建所有20个配置文件。
我一直在使用AFNetworking,并希望继续使用它。最后,如果需要添加,我希望将此组件回馈给社区。
任何人有任何想法处理这样的事情?现在我有一个服务每隔几秒推送一次JSON来测试。
我试图找到一种方法来打开与Web服务的连接,并让该服务根据需要发送JSON对象。使用AFNetworking为单个请求处理多个JSON响应
说我从服务请求20配置文件。与其等待服务构建全部20个服务,该服务将构建第一个配置文件并将其重新放回到客户端,直到创建所有20个配置文件。
我一直在使用AFNetworking,并希望继续使用它。最后,如果需要添加,我希望将此组件回馈给社区。
任何人有任何想法处理这样的事情?现在我有一个服务每隔几秒推送一次JSON来测试。
一对夫妇的想法:
如果你想打开的连接,并从服务器传输的响应,基于套接字的模型似乎是有道理的。有关示例,请参阅Ray Wenderlich的How To Create A Socket Based iPhone App and Server(服务器端的内容可能会根据您的服务器体系结构进行更改,但它举例说明)。但是AFNetworking是建立在一个NSURLConnection
框架之上的,而不是一个套接字框架,所以如果你想将你的套接字类整合到这个框架中,就会涉及一个不可忽视的工作量。
另一个iOS特定的模型是使用Apple的推送通知服务(请参阅Local and Push Notification Programming Guide的推送相关部分)。
第三种方法是继续使用拉机制,但如果您正在寻找一种以非连续方式使用多个Feed的方法,那么会创建多个AFURLConnectionOperation
(或相应的子类)操作,并且同时提交它们(您可能希望限制队列上的maxConcurrentOperations
为4或5,因为iOS只能有这么多的并发网络操作)。通过同时发布这些消息,可以减轻网络延迟导致的延迟。如果你采用这种方法,为了线程安全可能需要注意,但这可能比上述两种技术更容易。
这听起来像是一个套接字(或一个网络套接字,任何更容易)的工作。
我不相信AF有这方面的支持。这可以在NSURLConnection的didRecieveData方法中实现。每次接收到一段数据时都会触发此事件,因此您可以从这一点开始进行解析和消息传递。不幸的是,我想不出一个非常干净的方式来实现这一点。
也许更好的方法是通过分页式技术处理适当的重新请求。您可以请求1 /页面的配置文件页面1,然后请求页面2等。然后,您可以控制流程,即如果您想以并列方式请求全部或者请求一个,然后按顺序请求一个。这将是更少的工作来执行,并会(在我看来)更清洁,更容易维护。
感谢Adam的想法!不知道为什么我在问之前没有考虑这个问题!在这里试验。 –
AFNetworking支持使用AFHTTPClient -enqueueBatchOfHTTPRequestOperations:progressBlock:completionBlock:
来批量处理请求。
您可以使用此方法在每个单独操作以及批次中的所有操作都完成时返回。
非常好。我很欣赏这些想法! –