我需要在我的应用中使用数据库名称及其更改。
这是我的代码:
var cancellation = new CancellationTokenSource().Token;
var cnInfo = MyCouch.DbConnectionInfo(serverUrl, "_all_dbs");
cnInfo.BasicAuth = authString;
cnInfo.Timeout = TimeSpan.FromMilliseconds(System.Threading.Timeout.Infinite);
var db = new MyCouch.MyCouchClient(cnInfo);
var changes = db.Changes.ObserveContinuous(MyCouch.Requests.GetChangesRequest
(
Feed = MyCouch.ChangesFeed.Continuous,
Since = "0",
Heartbeat = 999999999,
IncludeDocs = true,
Style = MyCouch.ChangesStyle.MainOnly
), cancellation).Take(1).Wait();
几分钟后的第一次尝试会返回数据库名称,但会在下次尝试时阻止。
我可以通过getting
http://localhost:5984/_all_dbs
获取数据库名称。
我很确定服务器上有一些数据库。
更新 订阅更改有效:
db.Changes.ObserveContinuous(MyCouch.Requests.GetChangesRequest
(
Feed = MyCouch.ChangesFeed.Continuous,
Since = "0",
Heartbeat = 999999999,
IncludeDocs = true,
Style = MyCouch.ChangesStyle.MainOnly
), cancellation).Subscribe(print); //=> the print works.
主要问题似乎是.Take(1).Wait()
。我希望.Take(1)
向{oborable}添加.OnCompleted()
,但它似乎并不存在。有什么建议吗?