서버가 지정된 시간 내에 응답하지 않으면 (네트워크 연결에 문제가 있거나, 서버가 오작동하거나 네트워크 방화벽이 서버 간의 연결에서 클라이언트를 차단하기 때문에) 응답 시간 초과 및 http.serverresponse 객체의 시간 초과 이벤트가 트리거됩니다.
Response.setTimeout (Time, [Callback]);
Settimeout에서 콜백 함수를 지정할 수도 없으며 시간 모니터링 방법을 사용하여 콜백 함수를 지정할 수 있습니다.
시간 초과 콜백 함수가 지정되지 않은 경우 시간 초과가 발생하면 HTTP 클라이언트에 연결된 소켓 포트가 자동으로 닫힙니다. 타임 아웃 콜백 함수가 지정된 경우 콜백 기능이 호출되고 HTTP 클라이언트에 연결된 소켓 포트가 자동으로 닫힙니다.
코드 사본은 다음과 같습니다.
var http = 요구 사항 ( "http");
var server = http.createserver (function (req, res) {
if (req.url! == "/favicon.ico") {
// 타임 아웃 모니터링
/* res.settimeout(1000);
res.on ( "타임 아웃", function () {
Console.log ( "응답 시간 초과");
});*/
// 타임 아웃 콜백
res.settimeout (1000, function () {
Console.log ( "응답 시간 초과");
});
settimeout (function () {
res.setheader ( "content-type", "text/html");
res.write ( "<html> <head> <meta charset = 'utf-8' /> < /head>");
res.write ( "Hello");
res.end ();
}, 2000);
}
});
Server.Listen (1337, "LocalHost", function () {
console.log ( "청취 시작"+server.address (). port+"...");
});
코드 결과 실행 :
타임 아웃 콜백 함수 삭제 후 :