サーバーが指定された時間内に応答しない場合(ネットワーク接続に問題がある可能性がある場合、またはサーバーが誤動作しているか、ネットワークファイアウォールがサーバー間の接続からクライアントをブロックしているためかもしれません)。
Response.settimeout(time、[callback]);
また、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( "Response Timeout。");
});*/
//タイムアウトコールバック
res.settimeout(1000、function(){
console.log( "Response Timeout。");
});
setimeout(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()。ポート+"...");
});
コードの結果を実行します:
タイムアウトコールバック関数を削除した後: