2012-04-11 78 views
1

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

编辑

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

+0

终于得到了答案从http://stackoverflow.com/questions/337985/comet-server-push-to-client-on-iphone和http://stackoverflow.com/questions/1589816/iphone-realtime -notification-from-a-server-without-using-apple-push-notificati – rakeshNS 2012-04-11 11:03:27

回答

2

你说的是推送通知:http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html

这些让你从你的服务器发送特定消息,该选择在从应用接收推送通知的设备。

+0

我可以使用推送通知连续传递大量数据吗? – rakeshNS 2012-04-11 09:58:21

+0

@rakeshNS,不,我不认为这是他们的设计。不确定长时间轮询是否理想。你看过同行吗?看起来像iphone支持它:http://support.apple.com/kb/HT3621 – McGarnagle 2012-04-11 10:02:28

1

你在找什么叫做"Push Technology"(这里有几个相同的想法)。在你的情况下,我认为最适合的是“长轮询”。总之:

  1. 你轮询指定一个非常长的超时;
  2. 服务器将不会回复,直到它有一些新的数据,所以只要超时允许您的请求将保持打开状态;
  3. 只要服务器有新数据,它会回复,并立即得到更改;
  4. 当超时到期时,您发送新的请求。

长时间轮询会降低您“短”轮询所担心的开销。事实上,通过短期民意调查,这个想法正在发出频繁的请求,并且周转时间很短。这将使您不断发送检查新数据的请求。通过长时间轮询,只有当您获得新数据或发生超时(可能需要几分钟)时才发送请求。

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

+1

推送通知更适合移动设备,因为他们将使用比执行长轮询更少的电池。 – 2012-04-11 09:24:03

相关问题