Meteor方法和Meteor发布/订阅的区别

10

我正在使用 Meteor 创建一个应用程序。在 Meteor 中,Meteor.methodsMeteor.publish 用于执行数据库操作。我知道如何使用Meteor方法和 pub/sub。

我的问题是,在什么情况下应该使用 Meteor.methodsMeteor.publish


2
为什么这个问题被踩了? - I am
同意,我也点了个赞回来 :),因为我觉得这很有用。 - Justin
2个回答

7

Meteor.publishpub-sub发布部分。当被发布的数据被添加或更改时,服务器会自动将其发送到订阅该发布的任何客户端。

Meteor.call请求-响应方式。您发出请求,然后获得响应,流程结束。如果服务器上的数据发生更改且方法使用您的客户端不知道该更改,直到您进行另一次调用。


只是一个跟进的问题:当使用Meteor.call更改集合时,它是否会隐式地影响Meteor.publish?这正确吗? - JohnnyQ
1
是的 - 如果Meteor.call()导致已发布集合中的文档被插入、删除或更新,则发布将自动更新。实际上,无论如何更改集合,发布都会捕获更改。Meteor基本上通过尾随mongodb的oplog来实现这一点。 - Michel Floyd

3
Meteor发布订阅是一种允许客户端访问(读取和写入)并使所有客户端和服务器更新最新数据的方式。Meteor发布/订阅只与Meteor数据库有关。
Meteor方法则更加广泛,可用于各种用途,例如调用API(对REST API进行HTTP调用)等。(注:基于安全原因建议从服务器端进行这些调用。)
此外,在通过调用Meteor方法(使用Meteor.call)获取数据时,您可以在服务器端执行某种验证或验证,然后再获取或返回数据。
另外,米歇尔·弗洛伊德的答案也是一个很好的观点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接