Если сервер не реагирует в течение указанного времени (возможно, есть проблема с сетевым соединением, или это может быть связано с тем, что сервер неисправный или сетевой брандмауэр блокирует клиента с подключения между сервером), запускается время ответа и событие тайм -аута объекта HTTP.ServerResponse.
response.settimeout (время, [обратный вызов]);
Вы также не можете указать функцию обратного вызова в SetTimeout, вы можете использовать метод мониторинга времени для указания функции обратного вызова.
Если указана функция обратного вызова тайм -аута, то если происходит тайм -аут, порт сокета, подключенный к клиенту HTTP, будет автоматически закрыт. Если указана функция обратного вызова тайм -аута, будет вызвана функция обратного вызова, а порт сокета, подключенный к клиенту HTTP, будет автоматически закрыт.
Кода -копия выглядит следующим образом:
var http = require ("http");
var server = http.createserver (function (req, res) {
if (req.url! == "/favicon.ico") {
// мониторинг тайм -аута
/*res.settimeout(1000);
res.on ("timeout", function () {
console.log («тайм -аут ответа»);
});*/
// тайм -обратный вызов
res.settimeout (1000, function () {
console.log («тайм -аут ответа»);
});
settimeout (function () {
res.setheader ("контент-тип", "text/html");
res.write ("<html> <Head> <meta charset = 'utf-8' /> < /head>");
res.write ("Привет");
res.end ();
}, 2000);
}
});
server.listen (1337, "localhost", function () {
console.log ("start helload"+server.address (). port+"...");
});
Запустите результаты кода:
После удаления функции обратного вызова тайм -аута: