gpt4 book ai didi

node.js - 重新连接到NodeJS上的TCP/IP套接字

转载 作者:行者123 更新时间:2023-12-03 12:00:26 26 4
gpt4 key购买 nike

我使用“net”库在我的nodeJs上创建TCP连接。

root.socket = net.createConnection(root.config.port, root.config.server);

我正在尝试在远程服务器关闭并在Cycle中重新连接时处理错误。
root.socket.on('error', function(error) {
console.log('socket error ' + error);

root.reconnectId = setInterval(function () {
root.socket.destroy();
try {
console.log('trying to reconnect');
root.socket = net.createConnection(root.config.port, root.config.server);
} catch (err) {
console.log('ERROR trying to reconnect', err);
}

}, 200);
}

问题是,在远程服务器关闭的情况下,我仍然会收到错误消息,并且我的nodeJS服务器停止。

events.js:72 throw er; // Unhandled 'error' event ^ Error: connect ECONNREFUSED at errnoException (net.js:904:11) at Object.afterConnect [as oncomplete] (net.js:895:19)

最佳答案

您将需要以下内容:

var net = require('net');

var c = createConnection(/* port, server */);

function createConnection(port, server) {
c = net.createConnection(port, server);

console.log('new connection');

c.on('error', function (error) {

console.log('error, trying again');

c = createConnection(port, server);
});

return c;
}

在您的情况下,您正在创建一个新的连接,但没有附加任何错误监听器,该错误在执行循环中的其他位置引发,并且无法通过“try/catch”语句捕获。

P.S.尝试避免使用“try/catch”语句,Node.JS中的错误处理是使用错误监听器和域进行的,它仅对 JSON.parse()或其他同步执行的功能有用。

关于node.js - 重新连接到NodeJS上的TCP/IP套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26376726/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com