什么时候“null”发布准备好了吗?

时间:2013-11-10 14:25:19

标签: meteor publish

在服务器上使用以下代码:

Meteor.publish(null, function(){
    // Return some cursors.
})

将根据文档具有以下效果:记录集自动发送到所有连接的客户端

我如何在客户端确定是否已收到此功能发布的所有文件?如果我使用订阅,它会为我提供一个准备好的回调,让我知道收到所有文件的时间。这里匹配的方式是什么?或者当客户端代码开始执行时,客户端是否已收到文档?

1 个答案:

答案 0 :(得分:8)

我担心上面提到的所谓的universal subscriptions没有办法回复。只需查看Meteor代码的this part,即在服务器上定义publishsubscription逻辑。为方便起见,我复制/粘贴以下代码:

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消息的事件客户。