Se o servidor não responder dentro do tempo especificado (talvez haja um problema com a conexão de rede, ou pode ser porque o servidor está com mau funcionamento ou o firewall da rede bloqueia o cliente da conexão entre o servidor), o tempo limite da resposta e o evento de tempo limite do objeto http.ServerResponse será acionado.
Response.setTimeout (tempo, [retorno de chamada]);
Você também não pode especificar a função de retorno de chamada no setTimeout, você pode usar o método de monitoramento de tempo para especificar a função de retorno de chamada.
Se não houver função de retorno de chamada de tempo limite, se ocorrer o tempo limite, a porta do soquete conectada ao cliente HTTP será fechada automaticamente. Se a função de retorno de chamada de tempo limite especificado, a função de retorno de chamada será chamada e a porta do soquete conectada ao cliente HTTP será fechada automaticamente.
A cópia do código é a seguinte:
var http = requer ("http");
var server = http.createServer (function (req, res) {
if (req.url! == "/favicon.ico") {
// monitoramento de tempo limite
/*res.setTimeout(1000);
Res.on ("Timeout", function () {
console.log ("Timeout de resposta");
});*/
// Retorno de chamada de tempo limite
Res.setTimeout (1000, function () {
console.log ("Timeout de resposta");
});
setTimeout (function () {
Res.Setheader ("Content-Type", "Text/Html");
Res.Write ("<Html> <head> <meta charset = 'utf-8' /> </ad Head>");
res.Write ("Hello");
res.nd ();
}, 2000);
}
});
Server.Listen (1337, "localhost", function () {
console.log ("comece a ouvir"+server.address (). porta+"...");
});
Execute os resultados do código:
Depois de excluir a função de retorno de chamada de tempo limite: