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 einem try-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 erstellt this.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.

InformationsquelleAutor Max Markson | 2013-02-05
Schreibe einen Kommentar