在http.ServerResponse對象的end方法被調用之前,如果連接被中斷,將觸發http.ServerResponse對象的close事件.
代碼如下:
var http=require("http");
var server=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("<html><head><meta charset='utf-8' /></head>");
res.write("你好");
res.end();
},10000);
}
});
server.listen(1337,"localhost",function(){
console.log("開始監聽"+server.address().port+"......");
});
上面代碼是這樣的:
當客戶端發生請求後,經過10秒後向客戶端發送"你好".同時監聽close事件.
只要在10秒內關閉了服務器,服務端就會出現"連接被中斷",因為10秒內,並不會執行res.end()方法.