Node.js EPIPE错误

我有一个由node.js服务器加上其他文件和HTML文件组成的应用程序。 HTML文件是我的客户端,它必须与node.js服务器通信。 node.js服务器使用与其他node.js文件创build的对象使用以太网电缆与PLC进行通信。 所以我创build了服务器和客户端之间的socket.io连接,以及服务器和PLC之间的tcp连接。

现在错误:如果我启动服务器和客户端连接的所有电缆我有一个来自PLC的正确答案,如果我在运行时断开电缆,我得到以下错误:

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) 

我已经尝试用代码pipe理服务器中的错误

 communication_socket.on('error', function () { console.log('Error!'); }); 

我正在运行节点0.8.18和所有的软件包更新(我做了一个npm更新-g

编辑代码的结果

 process.on('uncaughtException', function(err) { console.log(util.inspect(err)); }); 

是:

 { [Error: write EPIPE] code: 'EPIPE', errno: 'EPIPE', syscall: 'write' } 

任何build议?

套接字IO错误不会抛出的方式,你可以尝试/抓住他们。 你必须在每个socket on('error', [callback])添加一个on('error', [callback])处理函数。 你可以阅读一些相关的讨论关于这应该stream.pipe转发错误? 你不会说为什么你有一个超时和超时写入什么套接字,所以我不能帮你更多。

在Metor的一个失败的部署命令后,我有这个错误。 我能够通过在debugging模式下运行应用程序,单击function断点,然后再次运行部署脚本来修复它。 我希望这可以帮助别人。