Node.js EPIPE Fehler
Ich habe eine Anwendung, bestehend aus einem node.js server sowie andere Dateien und eine HTML-Datei.
Die HTML-Datei, ist mein Mandant, es hat für die Kommunikation mit dem node.js server.
Die node.js server verwenden die erstellten Objekte mit den anderen node.js Dateien, die zur Kommunikation mit einer SPS über ein ethernet-Kabel.
Also ich habe einen socket erstellt haben.io-Verbindung zwischen dem server und dem client-und eine tcp-Verbindung zwischen dem server und der SPS.
Nun der Fehler: wenn ich den server starten, und den client mit allen Kabeln angeschlossen habe ich eine richtige Antwort von der SPS aus, wenn ich trennen Sie das Kabel während der Ausführung, die ich erhalten folgende Fehlermeldung:
events.js:71
throw arguments[1]; //Unhandled 'error' event
^
Error: write EPIPE
at errnoException (net.js:770:11)
at Socket._write (net.js:552:19)
at Socket.write (net.js:511:15)
at Timer.<anonymous> (C:\Users\Massimo\workspace\Scada\plc_driver\fw_driver.
js:289:20)
at Timer.exports.setInterval.timer.ontimeout (timers.js:234:14)
Habe ich auch schon probiert zu verwalten, ist ein Fehler in der server mit dem code
communication_socket.on('error', function () {
console.log('Error!');
});
Ich bin mit Knoten 0.8.18 und alle Pakete werden aktualisiert (ich habe eine npm update -g )
Bearbeiten
Das Ergebnis der code
process.on('uncaughtException', function(err) {
console.log(util.inspect(err));
});
ist:
{ [Error: write EPIPE] code: 'EPIPE', errno: 'EPIPE', syscall: 'write' }
Jede Anregung?
- Also der Fehler-handler nicht aufgerufen werden, überhaupt?
- Nein, ich habe versucht, auch die Zeile
C:\Users\Massimo\workspace\Scada\plc_driver\fw_driver. js:289:20
(wo die server versuchen zu schreiben, um die SPS) in einemtry-catch
aber keine Ausnahme abgefangen werden - Also auf fw_driver.js:289 es ist ein schreiben communication_socket, richtig?
- Ich habe eine
this.conn_write.write(new Buffer(message,'ascii'));
conn_write erstelltthis.conn_write = net.createConnection(port,ip);
ich bin mir sicher, dass dies nicht ein scope problem. Ich denke, das problem ist ein non-event feuern, wenn das Kabel nicht angeschlossen ist. - Versuchen Sie, die Befestigung der error-handler zu diesem.conn_write (
this.conn_write.on('error', ...)
). - Hab ich schon gemacht, keine Fehler abgefangen
- Hmm komisch 🙁 ich bin aus Lösungen!
- Trotzdem danke. Ich habe ein generic
process.on('uncaughtException', function(err) {});
zu vermeiden, den Absturz der Anwendung, aber das problem besteht weiterhin. - Für was es Wert ist, mit
https
gelöst hat das Problem für mich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Socket-E /a-Fehler werden nicht geworfen, in einer Weise, die Sie versuchen können/zu fangen. Sie haben zum hinzufügen eines
on('error', [callback])
handler zu jeder Steckdose. Lesen Sie einige Verwandte Diskussion über diese in Sollte stream.Rohr vorwärts-Fehler? Sie nicht sagen, warum haben Sie eine Timeout-und was socket-timeout zu schreiben ist, so kann ich dir nicht helfen mehr.Hatte ich diesen Fehler nach einem fehlgeschlagenen Befehl "deploy" in Metor. Ich war in der Lage, es zu beheben, durch ausführen der app im debug-Modus, indem Sie durch die Funktion Haltepunkte, und dann läuft das script "deploy" erneut. Ich hoffe, das jemand hilft.