如果在指定的时间内服务器没有做出响应(可能是网络间连接出现问题,也可能是因为服务器故障或网络防火墙阻止了客户端与服务器的连接),则响应超时,同时触发http.ServerResponse对象的timeout事件.JyYHTML5中文学习网 - HTML5先行者学习网
response.setTimeout(time,[callback]);JyYHTML5中文学习网 - HTML5先行者学习网
也可以不在setTimeout中指定回调函数,可以使用时间的监听的方式来指定回调函数.JyYHTML5中文学习网 - HTML5先行者学习网
如果没有指定超时的回调函数,那么出现超时了,将会自动关闭与http客户端连接的socket端口.如果指定了超时的回调函数,那么超时了,将会出现调用回调函数,而不会自动关闭与http客户端连接的socket端口.JyYHTML5中文学习网 - HTML5先行者学习网
JyYHTML5中文学习网 - HTML5先行者学习网
var http=require("http");JyYHTML5中文学习网 - HTML5先行者学习网
var server=http.createServer(function(req,res){JyYHTML5中文学习网 - HTML5先行者学习网
if(req.url!=="/favicon.ico"){JyYHTML5中文学习网 - HTML5先行者学习网
//超时监听JyYHTML5中文学习网 - HTML5先行者学习网
/*res.setTimeout(1000);JyYHTML5中文学习网 - HTML5先行者学习网
res.on("timeout",function(){JyYHTML5中文学习网 - HTML5先行者学习网
console.log("响应超时.");JyYHTML5中文学习网 - HTML5先行者学习网
});*/JyYHTML5中文学习网 - HTML5先行者学习网
//超时直接回调JyYHTML5中文学习网 - HTML5先行者学习网
res.setTimeout(1000,function(){JyYHTML5中文学习网 - HTML5先行者学习网
console.log("响应超时.");JyYHTML5中文学习网 - HTML5先行者学习网
});JyYHTML5中文学习网 - HTML5先行者学习网
setTimeout(function(){JyYHTML5中文学习网 - HTML5先行者学习网
res.setHeader("Content-Type","text/html");JyYHTML5中文学习网 - HTML5先行者学习网
res.write("<html><head><meta charset='utf-8' /></head>");JyYHTML5中文学习网 - HTML5先行者学习网
res.write("你好");JyYHTML5中文学习网 - HTML5先行者学习网
res.end();JyYHTML5中文学习网 - HTML5先行者学习网
},2000);JyYHTML5中文学习网 - HTML5先行者学习网
}JyYHTML5中文学习网 - HTML5先行者学习网
});JyYHTML5中文学习网 - HTML5先行者学习网
server.listen(1337,"localhost",function(){JyYHTML5中文学习网 - HTML5先行者学习网
console.log("开始监听"+server.address().port+"......");JyYHTML5中文学习网 - HTML5先行者学习网
});JyYHTML5中文学习网 - HTML5先行者学习网
JyYHTML5中文学习网 - HTML5先行者学习网运行代码结果:JyYHTML5中文学习网 - HTML5先行者学习网
JyYHTML5中文学习网 - HTML5先行者学习网
删除超时的回调函数后:JyYHTML5中文学习网 - HTML5先行者学习网
JyYHTML5中文学习网 - HTML5先行者学习网