2013-01-22 183 views
0

这通常是一个常见问题。实时从服务器获取消息

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

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

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

回答

1

基本上有2种方式:

  1. 投票,每个设备要求Web服务器更改每N分钟:新的待办事项,删除待办事项,改变待办事项,...然后每个设备都会调整。投票的频率取决于您正在查找的实时级别。它可以每秒1次或每12小时或更多次。
  2. 实现一种BOSH protocol:设备打开到服务器的连接。服务器保持打开状态,直到发送新消息发送到设备或连接超时。在这种情况下,设备会重新打开它。

选项1对于您的待办事项应用程序更好,因为您不需要实时准确性。选项2更适合您不想等待消息的聊天应用程序。

+0

我在其他应用程序中使用轮询。我想知道是否有更优雅的方式。询问Web服务器需要一些流量,第二种方法值得一看。它是否涵盖套接字编程? – alex

+0

你也可以想象你的设备之间的对等机制。它主要取决于你的应用程序。 –

2

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

在用户查看通知后,应用程序应该自行更新它,在进入前台时让应用程序自行更新它也是一个好主意。

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

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

相关问题