我正在编写一个基于net
模块的小型动态HTTP服务器(作业任务),如果服务器用户在两秒钟后没有调用response.end()
,则会发送408
响应。
无论我尝试什么,该函数都没有被调用。这里有另一段代码,演示了我在程序中尝试做的事情:
var NET = require("net");
var server = NET.createServer(function(socket){
console.log("In connectionHandler");
socket.on('data',function(data) {
console.log("New data");
var timer = setTimeout(function(end){
console.log("INSIDE TIMEOUT FUNCTION");
if (end) {
return;
}
throw new ERROR.ServerError('408',' Request Timeout','The \
server has timedouted');
},10,true);
for (var t = 0 ; t < 100000000000 ; t++){}
clearTimeout(timer);
})
});
server.listen(4000, function() {
console.log("server bound");
});
所以,超时时间设置为10毫秒,然后是一个非常长的循环,但这并不起作用。为什么会出现这种情况?
for (var t = 0 ; t < 100000000000 ; t++){}
- 这是什么鬼? - ThiefMaster