通过net.createServer代理多个代理
这是我所有的代码
var proxies='127.0.0.1:4444,127.0.0.1:4443,127.0.0.1:4442'.split(',');
var net = require('net');
function randgetir(){
d=proxies[Math.floor(Math.random() * proxies.length)].split(':');
return [d[0],d[1]];
}
var cre=net.createServer(function(from) {
var prgs=randgetir();
var to = net.createConnection({host: prgs[0],
port: prgs[1]
}).on('error', function(error) {
});
from.pipe(to);
to.pipe(from);
}).on('error', function(error) {
});
cre.listen("56666");
有时我运行代码时会得到
Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:162:27)
Emitted 'error' event at:
at errorOrDestroy (internal/streams/destroy.js:98:12)
at Socket.onerror (_stream_readable.js:720:7)
at Socket.emit (events.js:197:13)
at emitErrorNT (internal/streams/destroy.js:82:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
at processTicksAndRejections (internal/process/next_tick.js:76:17)
错误,我的应用程序崩溃并退出,但是如您所见,我处理了所有错误事件,
我可能做错了什么?
答案 0 :(得分:0)
问题在于传入的消息流没有附加错误处理程序。您可以附加这样的处理程序:
from.on('error', function(e){ ...}))
.pipe(to);
也许可以查看有关stackoverflow的这篇文章,以获得有关使用流/管道进行错误处理的更多信息:Error handling with node.js streams