【发布时间】:2015-12-03 07:58:51
【问题描述】:
我有一个关于流星订阅/发布的问题。
当你在meteor中订阅一个发布时,客户端数据库是更新了还是只更新了服务器数据库的一个副本?
事实上,Meteor 会在订阅后更新本地数据库,还是只是服务器数据库在 T 时刻的图像,其中 T 是订阅时刻?当我在客户端调用 Collection.find() 时,我可以获得最后的数据吗?
【问题讨论】:
标签: node.js mongodb meteor real-time
我有一个关于流星订阅/发布的问题。
当你在meteor中订阅一个发布时,客户端数据库是更新了还是只更新了服务器数据库的一个副本?
事实上,Meteor 会在订阅后更新本地数据库,还是只是服务器数据库在 T 时刻的图像,其中 T 是订阅时刻?当我在客户端调用 Collection.find() 时,我可以获得最后的数据吗?
【问题讨论】:
标签: node.js mongodb meteor real-time
快速回答是,只要您的订阅仍然有效,Meteor 就会按照您在 publish() 方法中定义的规则保持客户端与服务器同步。它不是 T 时刻的副本,它从 T 时刻开始,并随着服务器集合的变化而修改。
例如:
/server/publish/people.js:
Meteor.publish('people', function() {
return People.find();
}
/client/app.js:
Meteor.subscribe('people');
publish() 的 'People.find()' 将被监控,对查询的任何更改都将复制到客户端。如果您在客户端上有响应式查询(例如模板助手中的 People.find()),这些查询将自动重新执行并更新模板(请参阅Tracker)。
给你很好的参考:https://www.discovermeteor.com/blog/understanding-meteor-publications-and-subscriptions/
【讨论】: