2012-12-29 43 views
1

我们有一个couchdb服务器,其内容由.NET应用程序管理。同步couchdb与android

我们有一堆Android客户端,我们希望通过单击按钮与该数据库进行同步。 (这只是一个文件夹和项目的清单,没有什么复杂的)

什么是最好的Android库使用。我看到有Ektorp,touchdb等。Ektorp似乎有点沉重。 TouchDb-Android似乎很有前途。

你们有这方面的经验吗?或者我应该使用couchdb服务器使用GET/POST调用?

回答

0

我肯定会从其中一个库开始,如果事实证明库(或者实际上,没有任何库)为你工作,只返回到GET/POST调用。

2

因为我在做同样的事情,所以我对此做了很多研究。

我们有一些CMS内容我们要推入到CouchDB中,然后让移动设备与云中的服务器(集群)同步。

我们最终在云中使用了BigCouch(来自Cloudant的CouchDB分支是稳定的),然后我们暂时使用了Couchbase Mobile。不幸的是,Couchbase Mobile不支持(Couchbase已经停用),但它很稳定。

与Couchbase Mobile的区别之一是它使用移动设备上的Erlang来运行本地Couch实例。这有点慢。

TouchDB是我们两个人都需要的,但在Android上还不够成熟。 TouchDB在后台使用SQLlite有点儿乐趣。肯定会更快。他们已经发布了针对iOS的TouchDB 1.0,这很好,但他们还没有更新Android端口。我们发现TouchDB的Android端口(也来自Couchbase)并不稳定。另外,如果你看一下GitHub上的TouchDB Android代码,它有点马虎。

因此,我们将在云中使用BigCouch(而不是常规CouchDB)来支持群集,然后在移动设备上使用Couchbase Mobile。一旦TouchDB在Android上变得更加成熟,我们将切换到这一点。好消息是他们都使用Ektorp,所以在两者之间交换并不困难。复制效果很好。它坚实而且速度相当快。

只是一个快速提示:小心与移动设备的沙发复制。任何写入本地移动设备的文档将复制回服务器!

编辑

文件将不会总是从本地设备到服务器上进行复制。这是一个选项,但不会总是成为这种情况。我说得太快了。 =/

+0

“写入本地移动设备的任何文档都将复制回服务器!”你是说过滤复制(http://wiki.apache.org/couchdb/Replication#Filtered_Replication)不适用于您正在使用的移动环境? –

+0

是的,我接受了那个陈述。我发现一个简单的实现就是这种情况,但我相信它是可以预防的。我将编辑以取出该部分。我得到了过滤复制,以在我的环境中工作(BigCouch + Couchbase Mobile和BigCouch + TouchDB)。 – ryan1234