7

我刚刚开始构建一个新的 Meteor 应用程序。到目前为止,我唯一做的就是添加一个集合。它将启动,正常运行大约 5 分钟,然后给我错误消息“无法接收 keepalive!退出。”

什么是无法从什么接收keepalive?我认为这与 Mongo 有关,因为这是我添加的唯一内容。谷歌搜索错误消息除了显示此错误消息而不是他们的应用程序的 Meteor 网站之外什么都没有。

我的 MongoDB 集合中已经包含不是由 Meteor 创建的数据,如果这有什么不同的话,它会超过 4GB。

这是完整的应用程序。

pitches_sum = new Meteor.Collection( 'pitches_sum' );

if (Meteor.is_client) {
  Template.hello.greeting = function () {
  return "Welcome to my site.";
  };

  Template.hello.events = {
    'click input' : function () {
      // template data, if any, is available in 'this'
      if (typeof console !== 'undefined')
        console.log("You pressed the button");
    }
  };
}

if (Meteor.is_server) {
  Meteor.startup(function () {
  console.log( '**asdf**' );        
  });
}

如果我注释掉该pitches_sum = new Meteor.Collection( 'pitches_sum' );行,那么我认为我不会再收到错误消息。

4

1 回答 1

5

这是由我的大型数据集和自动发布引起的。由于启用了自动发布,Meteor 试图将整个 4GB 集合发送到客户端。尝试处理所有数据会阻止客户端响应服务器的保持活动 ping。或者类似的东西。

删除自动meteor remove autopublish发布,然后编写我自己的发布和订阅函数解决了这个问题。

于 2012-08-24T15:02:59.390 回答