我正处于与Android应用同步的Android应用的规划阶段。 Web端将使用Python编写,可能是Django或Pyramid,而Android应用程序将是简单的java。我的目标是让Android应用在没有数据连接的情况下工作,不包括应用程序的社交/网络方面。
这将是一个普通的应用程序,所以我想坚持一些可以通过市场上的一次点击轻松安装的东西,而不需要单独的下载,如CloudDB for Android。
我没有找到任何支持此功能的数据库,因此我将自己编写。编写同步逻辑的一个警告是,用户之间将存在一些共享数据,多个用户将能够写入。这是一个独奏项目,所以我想我会在这里看看我是否完全偏离基础。
以下是一些问题:
1)这听起来有点矫枉过正吗?有没有更简单的方法来处理这个?
2)这种处理应该在哪里进行?在客户端或服务器上?我认为客户端的优势在于服务器上的处理较少,但如果它在服务器上,则可以更容易地实现其他客户端。
3)我应该如何处理来自服务器的更新?增量轮询或彗星/ websocket?要记住的一件事是,我更愿意在Webfaction上进行最小的安装,因为这是初创公司。
一旦解决了这些问题,我就会计划为极客社区提供解决方案。
答案 0 :(得分:1)
1)看起来这是管理本地和娱乐的好方法。远程更改+支持离线工作。我不认为这有点矫枉过正
2)我认为,您应该使用本地时间戳在本地缓存用户的更改,直到同步完成。然后,服务器应管理所有处理:跟踪当前版本,提交和回滚更新尝试。减少对客户的处理=对您更好! (更容易支持和实施)
3)如果我想支持离线模式,我会选择轮询,因为在离线状态下,您无法保持套接字打开,每次恢复Internet连接时都必须重新打开套接字。
PS:看起来这是VEEERYY OLD的问题...... LOL