Ich betreibe eine Web-App auf einem Node.js-Server und ich brauche sie, um die ganze Zeit online zu sein, also benutze ich für immer. Aber hier ist, was ich nach einer Zeit bekommen:Node.js - Server hat die Verbindung geschlossen?
Error: Connection lost: The server closed the connection.
at Protocol.end (/home/me/private/app/node_modules/mysql/lib/protocol/Protocol.js:73:13)
at Socket.onend (stream.js:79:10)
at Socket.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:910:16
at process._tickCallback (node.js:415:13)
error: Forever detected script exited with code: 8
error: Forever restarting script for 3 time
Ich habe zwei weitere Server, die gerade für etwa 10 Tage ausgeführt wurden. Ich habe eine "Keepalive" -Schleife auf allen Servern, die alle 5 Minuten eine mysql-Abfrage "select 1" macht, aber es scheint, dass es keinen Unterschied macht.
Irgendwelche Ideen?
EDIT 1
Meine anderen Server wurden einen ähnlichen Fehler geben, ich denke, es "Connection Timeout" war, so habe ich diese Funktion:
function keepalive() {
db.query('select 1', [], function(err, result) {
if(err) return console.log(err);
console.log('Successful keepalive.');
});
}
Und es repariert meine beiden anderen Server . Aber auf meinem Hauptserver bekomme ich immer noch den Fehler oben.
Hier ist, wie ich meine Haupt-Server starten:
var https = require('https');
https.createServer(options, onRequest).listen(8000, 'mydomain.com');
Ich bin nicht sicher, welcher Code sind Sie daran interessiert zu sehen. Grundsätzlich ist der Server eine REST-API und muss ständig geöffnet bleiben. Es geht um 2-5, vielleicht 10 Anfragen pro Minute.
Es ist wie Ihre Anwendung Skript sieht hat einige Fehler .. Der Versuch läuft 'Knoten app.js' statt immer den Fehler zu sehen. – Sriharsha
Im Protokoll sind keine Fehler sichtbar, ich habe versucht, es mit Node-Dev auszuführen. Dies ist die einzige Fehlermeldung, die ich sehe. –
Lassen Sie uns mehr über Ihre App wissen, damit wir verstehen können, was vor sich geht. Sie verlassen einen Socket gegen mysql offen? Warum? Ist es eine entfernte Datenbank? – TheBronx