iOS版。从HTTP服务器(动态时间间隔)为HTTP聊天客户端提取数据的最佳方法?

时间:2013-08-25 09:37:03

标签: iphone ios http client-server

我正在聊天客户端。要获取新消息(或发布新消息),我必须执行GET(或POST)请求。所有新消息都通过核心数据存储。目前我不知道如何以最佳方式实施它。

我的想法:

  1. 在视图控制器初始阶段创建后台线程,该后台线程将定期检查新消息(如果会话处于活动状态 - 短周期,如果不是 - 周期约为60秒)。如果有新消息,我们将它们存储在DB和信号委托中,以便显示新消息。
  2. 朋友建议使用 performSelector afterDelay ,但我不明白如何在我的应用中使用它。
  3. 别的什么?
  4. 提前致谢。

1 个答案:

答案 0 :(得分:1)

请勿使用performSelector afterDelay。使用NSTimer要好得多(作为开始下一次下载的触发器)。另外,使用NSOperationQueue来管理您的后台任务。创建一个可以实例化的自定义NSOperation,它将完成您的请求过程。当您创建新操作以检查新消息时,请检查是否有一个消息正在进行中(同时没有多个请求正在进行中)。

其他说明:

  1. 确保考虑与Core Data存储相关的线程(将操作调用回主线程,结果可能最简单,因为结果数据总是相对较小)。
  2. 如果您发送了大量邮件并希望显示常量状态(如Skype所做的那样,当有人在键入时显示您),则需要使用套接字来保持连接的整个时间(新连接的成本)每次都是禁止的。)。