http.ServerResponse オブジェクトの end メソッドが呼び出される前に、接続が中断されると、http.ServerResponse オブジェクトの close イベントがトリガーされます。
var http=require("http");
varserver=http.createServer(function(req,res){
If(req.url!=="/favicon.ico"){
res.on("close",function(){
console.log("接続が中断されました")
});
setTimeout(function(){
res.setHeader("Content-Type", "text/html");
res.write("");
res.write("こんにちは");
res.end();
},10000);
}
});
server.listen(1337,"localhost",function(){
console.log("監視開始"server.address().port "......");
});
上記のコードは次のようになります:
クライアントがリクエストを行うと、10 秒後にクライアントに「Hello」を送信します。同時に close イベントをリッスンします。
サーバーが 10 秒以内にシャットダウンされる限り、res.end() メソッドは 10 秒以内に実行されないため、サーバーには「接続が中断されました」と表示されます。