首頁 >web前端 >js教程 >node.js超時timeout詳解_node.js

node.js超時timeout詳解_node.js

WBOY
WBOY原創
2016-05-16 16:30:101727瀏覽

如果在指定的時間內伺服器沒有做出回應(可能是網路間連線出現問題,也可能是因為伺服器故障或網路防火牆阻止了客戶端與伺服器的連線),則回應逾時,同時觸發http. ServerResponse物件的timeout事件.

response.setTimeout(time,[callback]);

也可以不在setTimeout中指定回呼函數,可以使用時間的監聽的方式來指定回呼函數.

如果沒有指定超時的回調函數,那麼出現超時了,將會自動關閉與http客戶端連接的socket端口.如果指定了超時的回調函數,那麼超時了,將會出現調用回調函數,而不會自動關閉與http客戶端連線的socket連接埠.

複製程式碼 程式碼如下:

var http=require("http");
var server=http.createServer(function(req,res){
    if(req.url!=="/favicon.ico"){
        //逾時監聽
        /*res.setTimeout(1000);
        res.on("timeout",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