在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("");
res.write("你好");
res.end();
},10000);
}
});
server.listen(1337,"localhost",function(){
console.log("開始監聽" server.address().port "......");
});
上面程式碼是這樣的:
當客戶端發生請求後,經過10秒後向客戶端發送"你好".同時監聽close事件.
只要在10秒內關閉了伺服器,服務端就會出現"連線被中斷",因為10秒內,並不會執行res.end()方法.