node.js挂起tcp连接尝试

时间:2014-09-04 15:12:36

标签: javascript node.js sockets tcp

当服务器重启时,当大量tcp连接尝试从node.js javascript客户端到服务器时,会挂起一些连接尝试。我写了一个简单的脚本来重现它:

var net = require('net');

function Conn() {
    var conn = new net.Socket({allowHalfOpen: false});
    conn.setTimeout(1000);
    conn.on('error', function (connectionException) {
        console.log('TCP Repeater error: ' + connectionException);
        this.connected = false;
    });
    conn.on('connect', function () {
        console.log("connected");
        this.connected = true;
    });
    conn.on('close', function () {
        console.log("connection closed");
        this.connected = false;
    });
    conn.on('timeout', function () {
        console.log("connection timeout");
        this.connected = false;
    });
    conn.connect(9997, "localhost");
}

for (var i=0;i<400;i++) {
    new Conn();
}

针对启动的tcp服务器运行此脚本。一些尝试在服务器启动时出现错误,一些尝试在服务器启动后连接。然而,一些尝试不会触发任何事件而只是悬挂。

无论如何,我可以杀死那些悬挂的尝试吗?它看起来连接超时因为已建立的连接不活动而无法获得帮助。有没有办法像java中的setSoTimeout一样设置连接超时?

由于

0 个答案:

没有答案