在iOS应用之间同步数据的最佳解决方案是什么?

|                                                                                                                       
已邀请:
        如果您想自己做,这可能是一个非常不错的挑战性练习。我不知道有任何第三方框架可促进Apple的“ iDevices”之间的P2P连接。如果您不想重新发明轮子,可以按照这些思路进行一些研究。我的回答基于我(通过应用服务器实现同步服务的(一点)经验)-原则与P2P方法必须大致相同。 第一步是设计一个用于同步数据的协议。您可能需要自己回答的问题: 关于数据同步,我需要了解什么? 我要同步核心数据模型的哪一部分?是否应该更改当前模型以促进同步? 我将使用哪种序列化/反序列化机制? 如何才能跨多个设备唯一地标识实体? 我将如何对数据进行版本控制?如何判断哪些实体需要同步? 我需要能够还原同步操作吗? 如何跟踪同步进度以及如何处理故障和异常情况?我将如何通知用户? 我想同步“增量”(模型的一部分)还是“全局”(一次整个模型)? 用户需要多久在设备之间进行一次同步? 有安全方面的考虑吗?我需要加密吗? 等等 这几乎没有刮擦表面。当您前进时,您肯定会发现更多需要考虑的事情。 接下来,确定您要如何在设备之间进行连接。您似乎更喜欢P2P这样的无线解决方案。为此,我将从查看以下工具开始​​: GameKit(此框架具有用于通过蓝牙在设备之间建立连接的API) Bonjour(用于通过网络发现设备的Apple协议-请参阅BonjourWeb示例应用程序)+ BSD套接字 根据前面讨论的设计决策,选择最适合您的工具。在这方面我无能为力,因为我对任何一个人都没有任何经验。正如Morpheus所说:   我只能给你看门。你是   一个必须经历的过程。 对不起,有点幽默:) 最后,确定实现同步机制的解决方案。您可以例如选择客户端-服务器模型(一台设备将监听连接,另一台设备将发起连接)。 更多相关文档: 网络与互联网的起点 文件传输策略 希望这为您提供了一条起点。     
        众所周知,同步数据非常棘手。简单的解决方案比没有解决方案更糟糕。 要获得有关此问题的良好精神指导,请查看物联网的作者使用即将推出的云同步功能正在做什么。我希望他们将发布一个同步API,开发人员可以通过该API来实现同步服务。但是,即使他们坚持自己的想法,他们也很好地证明了真正完成这项任务所需的那种自我思考。     
        \“ iOS的Couchbase \”可能会满足您的需求 https://github.com/couchbaselabs/iOS-Couchbase 根据自述文件:
Mobile Couchbase for iOS

Apache CouchDB on iOS provides a simple way to sync your application
     跨设备传输数据并提供云   用户数据备份。不像其他   云解决方案,数据托管在   该设备由Couchbase Mobile提供,因此   即使网络中断或速度很慢   (飞机,地铁,后院)   应用程序响应用户。
What this means for you:

You can embed the rock solid distributed database, Mobile
     Couchbase,在您的iOS设备上。       您的iOS应用程序可以使用Apache CouchDB的成熟同步   技术。       如果您<3个CouchApps,则可以将它们部署为iOS应用程序。     
        我将从Apple API Sync Services开始,看看是否满足您的需求。原则上,它可以让您在所有Apple设备和服务之间进行同步。     

要回复问题请先登录注册