7

在服务器上有以下代码:

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

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

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

4

1 回答 1

8

恐怕没有办法为universal subscriptions上面提到的所谓的你准备好回调。看看Meteor 的这部分代码,其中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客户端发送消息的事件。

于 2013-11-10T22:17:36.013 回答