2013-07-31 60 views
1

我在写一个管理sqlite数据库的应用程序,并且我写了一个web服务器,我想用户在我的web服务器中用用户名和密码注册,我已经知道如何从ios应用程序到服务器的请求并接收响应,但我希望启用sqlite数据库同步到其他设备,我现在与核心数据我可以使用iCloud同步,但现在我更喜欢使用sqlite,并找到一种方法来进行同步,例如我想创建这样的:从Web服务器接收更新到iOS应用程序并同步数据

  1. 使在iPhone应用程序sqlite的变化;
  2. 应用程序将此更改发送给该用户的服务器;
  3. 那么服务器必须将此更新发送给该用户连接的其他设备;

现在我不能过去了,服务器如何将此更改发送到其他设备?该设备必须始终监听服务器?或者有办法将此更新直接发送到某个设备并进行处理?像苹果推送通知?

编辑:如果有可能使用苹果推送通知来做到这一点,我不想用文本声音提醒警告并且标记用户,但发送一个“无声通知”这是可能的?

回答

1

作为一个高层次,有几种不同的方法来解决这个问题,所有这些方法都有优点和缺点。两个名字两个例子,你可以做投票方法,主动推送或混合方式。

轮询:在某个预先确定的时间间隔内,应用程序尝试“回家”,并将增量变化数据发送到服务器。在这里,您知道您的服务器将在任何给定的时间间隔内预期X次响应,因此您可以适当地评估您的负载。

活动推送:用户决定何时希望通过点击“同步”按钮将这些更改发送到服务器。这允许用户在知道有变化时仅将数据推回到服务器,但过度热心的用户可能会进行更改,上传,更改,上传等,而不是排队进行一系列更改并将它们全部发送立刻。这可能会频繁创建不需要的服务器调用。

混合动力:您可以在应用程序内设置轮询计划,并在用户需要尽快进行重大更改的情况下为用户提供随时同步的功能。

关于等式的聆听者方面,您在概念上面临类似的挑战。如果原始用户进行20次更改并按下同步20次,那么您是否还会对第二个用户的设备进行20次轰炸,或者是否将这些更改排队并每5分钟发送一次(作为示例)?除非你有两个设备相互配对,或者连接到同一个网络,并且通过你的应用程序彼此都可见,否则你将需要利用该后端服务器。以这种方式推送通知可能非常有用,但是需要考虑到额外的开发和设置开销以正确实施它们。

为了解决这一切问题,我会建议您在开始沿着路径行进之前展示你想让你的同步模型看起来像什么。

+0

感谢您的答案,我不喜欢用户按下“同步按钮”,我更喜欢推送通知的方式,你知道我怎么能发送推送通知从服务器到应用程序?改变内容?一些开始的方式? – Piero

+0

您将要搜索如何实施APN服务器。世界上有很多开源示例,所以你需要从这里开始。 – Dan

+0

非常感谢你,最后的回答,你能给我一些这个开源示例apns服务器的链接例子吗?我发现只有parse.com和其他支付服务... – Piero

相关问题