ホームページ >ウェブフロントエンド >jsチュートリアル >node.jsのタイムアウト詳細説明_node.js

node.jsのタイムアウト詳細説明_node.js

WBOY
WBOYオリジナル
2016-05-16 16:30:101724ブラウズ

指定された時間内にサーバーが応答しない場合 (ネットワーク間の接続に問題があるか、サーバーに障害が発生したか、ネットワーク ファイアウォールがクライアントとサーバー間の接続をブロックしたことが考えられます)、応答がタイムアウトし、同時に ServerResponse オブジェクトのタイムアウト イベントがトリガーされます。

response.setTimeout(time,[callback]);

setTimeout でコールバック関数を指定することはできません。時間監視を使用してコールバック関数を指定することもできます。

タイムアウト コールバック関数が指定されていない場合は、タイムアウトが発生し、http クライアントに接続されているソケット ポートが自動的に閉じられます。タイムアウト コールバック関数が指定されている場合は、タイムアウトの代わりにコールバック関数が呼び出されます。 http クライアントに接続されているソケット ポートは自動的に閉じられます。

コードをコピーします コードは次のとおりです:

var http=require("http");
varserver=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("");
res.write("こんにちは");
res.end();
},2000);
}
});
server.listen(1337,"localhost",function(){
console.log("監視開始"server.address().port "...");
});

コードの実行結果:

タイムアウトコールバック関数を削除した後:

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。