在nodejs中持续一段时间后挂起http连接

时间:2015-10-15 17:00:29

标签: javascript node.js mongodb

我需要编写一个程序来从nodejs中的一些现有服务中获取一些json数据。但是,通过关注我的应用程序中的实时条件,我需要确保答案准备不会花费更长的时间,例如2秒。 在那段时间之后,我想切断已建立的连接,并从我自己的数据库向客户端提供我的数据。 我搜索了很多,但我发现的唯一一件事是在http.request中为socket设置超时,如下所示。

var options = { ... }
var req = http.request(options, function(res) {
  // Usual stuff: on(data), on(end), chunks, etc...
}

/* This does not work TOO MUCH... sometimes the socket is not ready (undefined) expecially on rapid sequences of requests */
req.socket.setTimeout(myTimeout);  
req.socket.on('timeout', function() {
  req.abort();
});

只有在无法访问服务器或无法联系服务器时,才会执行上述代码。但我的问题是强制关闭连接。 有没有人有任何想法?

1 个答案:

答案 0 :(得分:1)

尝试request模块。对于像这样的东西真的很棒:

var request = require('request');

request({
  method: 'GET',
  uri: 'http://www.example.com',
  timeout: 2000,
}, (err, response, body) => {
  if (err) {
    return console.error(err);
  }
  console.log(response);
});