How to set Timeout for http.createClient in Node.js?

node.js, timeout

Solution

var foo = setTimeout(function() {
    request.emit("timeout-foo");
}, 15000);

// listen to timeout
request.on("timeout-foo", function() { });

request.addListener('response', function (response) {
    // bla
    // clear counter
    clearTimeout(foo);
});

Just run the counter yourself.

Problem

There is a post: How do I set a timeout for client http connections in node.js but none of the answer will work. So, I have the code like that: ``` var remote_client = http.createClient(myPost, myHost); var path = '/getData?'; var param = { }; var request = remote_client.request("POST", path,); // error case remote_client.addListener('error', function(connectionException){ console.log("Nucleus Error: " + connectionException); next(connectionException); }); request.addListener('response', function (response) { response.setEncoding('utf-8'); var body = ''; response.addListener('data', function (chunk) { // get the result! }); }); request.end(); ``` The biggest problem is that the url that I'm connection to may timeout. Therefore, I would like to set a timeout, like 15 secs. If so, trigger a listener. However, I haven't seen any timeout features in the documentation for http.createClient. Please advise. Thanks. :)

Original source

Related problems