问题描述
|
解决方法
如果您想自己做,这可能是一个非常不错的挑战性练习。我不知道有任何第三方框架可促进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设备和服务之间进行同步。