实时从服务器获取消息

时间:2013-01-22 10:57:43

标签: ios objective-c cocoa-touch

这通常是一个常见的问题。

我想知道邮件应用程序如何实现电子邮件接收的功能? 我需要使用我的Web服务在两个设备之间实现简单的同步。

想象一下待办事项列表应用程序。

是否可以实现这样的功能:device1创建一个条目,然后向webservice发送消息,webservice通知device2发生了更改,device2调整其数据并显示该条目?

2 个答案:

答案 0 :(得分:2)

在iOS上,您可以使用推送通知轻松实现所需的功能。 一旦服务器检测到设备2需要知道的更改,服务器就会向该设备发送推送通知。

用户查看通知后应用程序应自行更新,最好让应用程序在到达前台时自行更新。

使用推送通知而不是轮询的原因是,如果您的应用程序在后台,您只能继续运行最多10分钟的过程。您可以通过向应用添加背景模式来解决此问题,例如VOIP,音频或位置。但是,如果您的应用不属于这些类别,苹果可能会拒绝您的应用。

使用推送通知,即使您的应用未运行或在后台运行,设备也会收到通知。

答案 1 :(得分:1)

基本上有两种方式:

  1. 轮询,每个设备每隔N分钟要求网络服务器进行更改:新的待办事项,删除待办事项,更改待办事项,......然后每个设备都将进行调整。民意调查的频率取决于您所寻找的实时水平。它可以是每秒一次或每12小时一次或更多。
  2. 实现一种BOSH protocol:设备打开与服务器的连接。服务器保持打开状态,直到有新的东西发送到设备或连接超时。在这种情况下,设备会重新打开它。
  3. 选项1更适合您的待办事项应用,因为您不需要实时准确性。对于您不想等待消息的聊天应用程序,选项2更好。