1

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

编辑

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

4

2 回答 2

2

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

这些让您可以将特定消息从您的服务器发送到选择接收来自您的应用程序的推送通知的设备。

于 2012-04-11T09:13:49.690 回答
1

您正在寻找的东西被称为“推送技术”(同一想法有几种变体)。就您而言,我认为最适合的是“长轮询”。简而言之:

  1. 你轮询指定一个很长的超时时间;
  2. 服务器在收到一些新数据之前不会回复,因此只要超时允许,您的请求就会保持打开状态;
  3. 一旦服务器得到新数据,它就会回复,你会立即得到更改;
  4. 当超时到期时,您发送一个新请求。

进行长轮询的事实将减少您担心“短”轮询的开销。事实上,通过短轮询的想法是发送频繁的请求,并且循环时间非常短。这将使您不断发送请求以检查新数据。通过长轮询,您仅在获得新数据或超时触发(可能是几分钟)时才发送请求。

这篇 SO post中,您将找到实现它的方法。

于 2012-04-11T09:16:02.713 回答