2012-06-23 14 views
7

Właśnie zaczynam budować nową aplikację Meteor. Jedyne, co do tej pory zrobiłem, to dodać jedną kolekcję. Uruchomi się, będzie działać dobrze przez około 5 minut, a następnie wyświetli komunikat o błędzie "Nie mogę odebrać keepalive! Exiting."Komunikat o błędzie Meteor: "Nie udało się odebrać keepalive! Wychodzenie."

Czego nie można odebrać? Zakładam, że ma to coś wspólnego z Mongo, ponieważ to jedyna rzecz, którą dodałem. Googling z komunikatem o błędzie nie pokazuje nic poza witrynami Meteor, które wyświetlają tylko ten komunikat o błędzie zamiast swojej aplikacji.

Moja kolekcja MongoDB zawierała już dane, które nie zostały stworzone przez Meteora i ma ponad 4 GB, jeśli to robi jakąkolwiek różnicę.

To jest kompletna aplikacja.

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**');   
    }); 
} 

Gdybym wykomentuj linię pitches_sum = new Meteor.Collection('pitches_sum');, to nie sądzę, będę się komunikat o błędzie więcej.

+0

Spróbuj określić kolekcję tylko na serwerze, teraz jest ona również załadowana do klienta. Jeśli nadal daje ten sam błąd, oznacza to, że problem dotyczy połączenia z serwerem mongo. – Nachiket

+0

Wpadłem na ten sam problem bez dużego zestawu danych, ale z czymś w rodzaju 16 połączonych rówieśników próbujących odczytać te same ~ 100 rekordów. – meawoppl

Odpowiedz

5

To było spowodowane moim dużym zestawem danych i autopublikacją. Ponieważ autopublish był włączony, Meteor próbował wysłać całą kolekcję 4GB do klienta. Próba przetworzenia wszystkich danych uniemożliwiła klientowi odpowiadanie na sygnały ping utrzymujące serwer. Lub coś takiego.

Usunięcie autopublish przy pomocy meteor remove autopublish, a następnie napisanie własnych funkcji publikowania i subskrybowania rozwiązało problem.

Powiązane problemy