【问题标题】:Couchbase Lite 2.0 ReplicationCouchbase Lite 2.0 复制
【发布时间】:2018-04-25 15:29:03
【问题描述】:

我正在将我们的系统从 couchbase lite 1.5 升级到 2.0,并且遇到了复制问题。我正在创建一个持续推送和拉取复制器,它会在应用启动时拉取更改,但不会在应用的整个生命周期内继续同步。

这是我的复制器创建代码:

public void StartSync(Uri syncEndpoint, string username, ISecureString password)
        {
            if (_database == null)
            {
                throw new DataHandlerException(DataHandlerError.DatabaseDoesntExist);
            }

            var endpoint = new URLEndpoint(syncEndpoint);
            var config = new ReplicatorConfiguration(_database, endpoint)
            {
                Authenticator = new BasicAuthenticator(username, password.ToString()),
                Continuous = true
            };

            _replicator = new Replicator(config);
            _replicator.AddChangeListener((s, a) =>
            {
                OnSyncChange(a.Status);
            });

            _replicator.Start();
        }

我还使用新语法设置了几个实时查询:

var token = query.AddChangeListener(OnQueryUpdated); // start live query

实时查询回调永远不会被调用,但我认为这是因为复制不起作用。

有没有人遇到过这个问题或有 Couchbase Lite 2.0 的最佳实践示例?

更新:

我发现这个问题是由网络套接字问题引起的,这是 Couchbase 同步网关现在使用的协议。我不得不检查我的 nginx 设置并重新启动我的所有服务来纠正这个问题。

【问题讨论】:

  • 您可以从您的应用程序和同步网关发布日志吗?是什么让您认为复制正在停止?
  • 我已经设法修复它。这是 Web 套接字和 nginx 的问题。
  • 请随时在下面的答案中提供您的发现,而不是留在问题中

标签: c# replication couchbase-lite


【解决方案1】:

问题在于需要正确配置 nginx 才能使用 2.0.0 版中同步网关使用的新 websockets 协议

设置可以在/etc/nginx/sites-available/default文件中找到,根据同步网关文档的官方设置是:

location / {
    proxy_pass              http://sync_gateway;
    proxy_pass_header       Accept;
    proxy_pass_header       Server;
    proxy_http_version      1.1;
    keepalive_requests      1000;
    keepalive_timeout       360s;
    proxy_read_timeout      360s;
    proxy_set_header        Upgrade $http_upgrade;
    proxy_set_header        Connection "upgrade";
}

然而,我发现当运行 couchbase lite 的应用程序首先打开连接但连续复制仍然是一个问题时,这可以工作。一种可能的解决方法是将客户端直接指向同步网关,而根本不使用 nginx。这需要更多调查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-10
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 2013-12-27
    相关资源
    最近更新 更多