在nodejs

时间:2015-10-03 14:39:31

标签: javascript node.js sockets httprequest

我有用户http.request用于连接到nodejs中的另一台服务器。不幸的是,服务器在某些情况下会有延迟响应。所以我想在一段时间后关闭请求。 我找到了以下代码,但是如果目标服务器无法访问或者尚未建立连接,则会发生此紧密连接。

req.on('socket', function (socket) {
    socket.setTimeout(myTimeout);  
    socket.on('timeout', function() {
        req.abort();
    });
});

我想要的是关闭连接,例如2秒后数据是否来临。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:1)

我真的不知道您使用的套接字库,也许它有一些现成且很好的解决方案,但只使用setTimeout函数看起来很简单:

req.on('socket', function (socket) {
    setTimeout(function() {
        // maybe some additional condition here
        // or recursive call if you want to wait 2 more seconds
        // or whatever else
        // but if you want to just abort...
        req.abort();
    }, 2000);
});

同样,这可能看起来像是一种解决方法,但根据您的要求,它肯定应该足够了。