How do i close a socket after a timeout in node.js?
Posted
by rramsden
on Stack Overflow
See other posts from Stack Overflow
or by rramsden
Published on 2010-05-21T23:15:54Z
Indexed on
2010/05/21
23:20 UTC
Read the original article
Hit count: 199
node.js
I'm trying to close a socket after a connection times out after 1000ms. I am able to set a timeout that gets triggered after a 1000ms but I can't seem to destroy the socket... any ideas?
var connection = http.createClient(80, 'localhost');
var request = connection.request('GET', '/somefile.xml', {'host':'localhost'});
var start = new Date().getTime();
request.socket.setTimeout(1000);
request.socket.addListener("timeout", function() {
request.socket.destroy();
sys.puts("socket timeout connection closed");
});
request.addListener("response", function(response) {
var responseBody = [];
response.setEncoding("utf8");
response.addListener("data", function(chunk) {
sys.puts(chunk);
responseBody.push(chunk);
});
response.addListener("end", function() {
});
});
request.end();
returns
socket timeout connection closed
node.js:29
if (!x) throw new Error(msg || "assertion error");
^
Error: assertion error
at node.js:29:17
at Timer.callback (net:152:20)
at node.js:204:9
© Stack Overflow or respective owner