淺析node.js中close事件

字號:


    在http.ServerResponse對象的end方法被調(diào)用之前,如果連接被中斷,將觸發(fā)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("開始監(jiān)聽"+server.address().port+"......");
    });
    上面代碼是這樣的:
    當(dāng)客戶端發(fā)生請求后,經(jīng)過10秒后向客戶端發(fā)送"你好".同時監(jiān)聽close事件.
    只要在10秒內(nèi)關(guān)閉了服務(wù)器,服務(wù)端就會出現(xiàn)"連接被中斷",因為10秒內(nèi),并不會執(zhí)行res.end()方法.