Heim >Web-Frontend >js-Tutorial >Ausführliche Erklärung zum Timeout von node.js_node.js

Ausführliche Erklärung zum Timeout von node.js_node.js

WBOY
WBOYOriginal
2016-05-16 16:30:101725Durchsuche

Wenn der Server nicht innerhalb der angegebenen Zeit antwortet (möglicherweise liegt ein Problem mit der Verbindung zwischen den Netzwerken vor, oder es kann daran liegen, dass der Server ausfällt oder die Netzwerk-Firewall die Verbindung zwischen dem Client und dem Server blockiert), wird der Antwortzeitüberschreitung und http wird gleichzeitig ausgelöst. Das Timeout-Ereignis des ServerResponse-Objekts.

response.setTimeout(time,[callback]);

Sie können die Callback-Funktion auch nicht in setTimeout angeben. Sie können die Zeitüberwachung verwenden, um die Callback-Funktion anzugeben.

Wenn keine Timeout-Callback-Funktion angegeben ist, tritt ein Timeout auf und der mit dem HTTP-Client verbundene Socket-Port wird automatisch geschlossen. Wenn eine Timeout-Callback-Funktion angegeben ist, wird die Callback-Funktion anstelle des verbundenen Socket-Ports aufgerufen zum http-Client wird automatisch geschlossen.

Code kopieren Der Code lautet wie folgt:

var http=require("http");
var server=http.createServer(function(req,res){
If(req.url!=="/favicon.ico"){
//Timeout-Überwachung
/*res.setTimeout(1000);
          res.on("timeout",function(){
console.log("Antwortzeitüberschreitung.");
         });*/
// Direkter Rückruf bei Timeout
          res.setTimeout(1000,function(){
console.log("Antwortzeitüberschreitung.");
});
setTimeout(function(){
              res.setHeader("Content-Type", "text/html");
res.write("");
                res.write("Hallo");
               res.end();
},2000);
}
});
server.listen(1337,"localhost",function(){
console.log("Überwachung starten" server.address().port "...");
});

Ergebnis der Ausführung des Codes:

Nach dem Löschen der Timeout-Callback-Funktion:

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn