在服务器上使用以下代码:
Meteor.publish(null, function(){
// Return some cursors.
})
将根据文档具有以下效果:记录集自动发送到所有连接的客户端。
我如何在客户端确定是否已收到此功能发布的所有文件?如果我使用订阅,它会为我提供一个准备好的回调,让我知道收到所有文件的时间。这里匹配的方式是什么?或者当客户端代码开始执行时,客户端是否已收到文档?
答案 0 :(得分:8)
我担心上面提到的所谓的universal subscriptions
没有办法回复。只需查看Meteor代码的this part,即在服务器上定义publish
和subscription
逻辑。为方便起见,我复制/粘贴以下代码:
ready: function () {
var self = this;
if (self._isDeactivated())
return;
if (!self._subscriptionId)
return; // unnecessary but ignored for universal sub
if (!self._ready) {
self._session.sendReady([self._subscriptionId]);
self._ready = true;
}
}
_subscriptionId
仅提供给命名订阅,这些订阅是您使用Meteor.subscribe
方法手动定义的订阅。与null
发布函数对应的订阅没有自己的_subscriptionId
,因此从上面的代码中可以看出,服务器不是尝试发送ready
消息的事件客户。