由于更改后的数据(由应用程序A插入)需要在应用程序B中实时显示,所以我们决定使用.find().observe(...)。
看起来是这样的:
App A -> Insert -> mongodb <- observe -> publish -> Display App B这很好,但在插入A到B显示之间有3到5秒的延迟,我怎么能改变这个呢?
最初我认为,Oplog-观察-驱动程序是默认的在Meteor >版本1,并作出了实时反应。是否还在投票,还是有其他原因造成延迟?
谢谢你的扩展。
发布于 2015-09-16 13:27:48
如果您正在使用Oplog,则更改将立即进行。如果您使用的是轮询,那么正如您所写的那样,需要几秒钟时间。您需要正确设置MONGO_OPLOG_URL以使其工作。(当然,您的MongoDB需要启用Oplog。)
另外,如果您处于反应性上下文中,则不需要使用find().observe(),find()就足够了。但是,在服务器上,您可能需要find().observe(),这取决于您在做什么。
发布于 2015-09-16 14:13:31
你用DDP.connect了吗?您还必须使用onReconnect
Remote = DDP.connect('http://yourremoteserver');
MyCollection = new Mongo.Collection('same_name', Remote);
// do whatever you need with collection
let watchCollection = function (query={}, project={}) {
return MyCollection.find(query, project).observe({
changed: function () { console.log('Something changed!') }
});
}
DDP.onReconnect(watchCollection);https://stackoverflow.com/questions/32609625
复制相似问题