在服务器中发生更改时立即获取更改

时间:2012-04-11 09:11:10

标签: iphone asynchronous client-server

我想知道一旦用户在服务器中输入或修改数据,在iPhone中获取数据的最佳方法是什么。我可以向服务器发送一个小的时间间隔的请求,以检查在服务器中完成的任何修改(如轮询)。我知道这很尴尬。请求建议最好的!!!

修改

我不是在谈论推送通知。我需要一些数据,比如在进行板球比赛时,当每次得分更新服务器时我需要在我的iPhone中获取该数据(通过XML,JSON或任何其他媒介)。

2 个答案:

答案 0 :(得分:2)

您正在谈论推送通知:http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html

这些邮件允许您从服务器向选择接收应用推送通知的设备发送特定邮件。

答案 1 :(得分:1)

您正在寻找的内容被称为"Push Technology"(同一想法有多种变体)。在你的情况下,我认为最适合的是“长期投票”。简而言之:

  1. 您轮询指定非常长的超时;
  2. 服务器在有新数据之前不会回复,因此只要超时允许,您的请求就会保持打开状态;
  3. 一旦服务器获得了新数据,它就会回复,并立即得到更改;
  4. 超时到期时,您发送新请求。
  5. 进行长时间轮询的事实将减少您对“短”轮询所担心的开销。实际上,通过简短的民意调查,这个想法就是经常发出请求,而且周转时间非常短。这将使您不断发送检查新数据的请求。使用长轮询时,只有在获得新数据或超时(可能是几分钟)时才会发送请求。

    this S.O. post中,您将找到实现它的方法。