MeteorJS订阅机制

时间:2015-12-03 07:58:52

标签: node.js mongodb meteor real-time

我对meteor中的订阅/发布有疑问。

当您订阅meteor中的发布时,客户端数据库是在服务器数据库的某个时刻更新还是只复制了一份?

事实上,Meteor会在订阅后更新本地数据库,还是只是在T是订阅时刻的T时刻的服务器数据库的图像?当我在客户端调用Collection.find()时,我能获得最后的数据吗?

1 个答案:

答案 0 :(得分:1)

快速回答是,只要您的订阅仍处于活动状态,Meteor将根据您在publish()方法中定义的规则使客户端与服务器保持同步。它不是时间T的副本,它从时间T开始,并随着服务器集合的变化而修改。

例如:

/server/publish/people.js:

Meteor.publish('people', function() {
  return People.find();
}

/client/app.js:

Meteor.subscribe('people');

发布()' People.find()'将被监视,并且将在客户端上复制对查询的任何更改。如果您在客户端上有反应性查询(例如模板助手中的People.find()),则会自动重新执行这些查询并更新模板(请参阅Tracker)。

很好的参考资料:https://www.discovermeteor.com/blog/understanding-meteor-publications-and-subscriptions/