gpt4 book ai didi

ios - 从网络服务器接收更新到 iOS App 并同步数据

转载 作者:行者123 更新时间:2023-11-29 13:08:25 25 4
gpt4 key购买 nike

我正在编写一个管理 sqlite 数据库的应用程序,并且我已经编写了一个网络服务器,我希望用户使用用户名和密码在我的网络服务器中注册,我已经知道如何从 ios 应用程序向服务器发出请求以及收到响应,但我还想启用 sqlite 数据库与其他设备的同步,我现在有了核心数据我可以使用 iCloud 同步,但现在我更喜欢使用 sqlite,并找到一种同步它的方法,例如我想要创建这个:

  1. 在 iPhone 应用程序中更改 sqlite;
  2. 应用将此更改发送到该用户的服务器;
  3. 然后服务器必须将此更新发送到连接到该用户的其他设备;

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

编辑:如果可以使用苹果推送通知来执行此操作,我不希望使用文本声音提醒用户并标记用户,但可以发送“无声通知”吗?

最佳答案

作为高层,有几种不同的方法可以解决这个问题,所有这些方法都有利有弊。举两个例子,你可以使用轮询方法、主动推送或混合方法。

轮询:在某个预先确定的时间间隔内,应用程序会尝试“打电话回家”并将增量数据库更改发送到服务器。在这里,您知道您的服务器将在任何给定时间间隔内期望 X 数量的响应,因此您可以适本地衡量您的负载。

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

混合:您在应用程序中设置轮询时间表,并让用户能够在需要尽快进行重大更改时随意同步。

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

总而言之,我建议您在开始前进之前,先列出您希望同步模型的外观。

关于ios - 从网络服务器接收更新到 iOS App 并同步数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17971930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com