0
我正在使用HTTP Node.js.关闭后再次打开服务器
为了防止新的会话,虽然我已经有一个活动的,我使用server.close();. 当这个活动会话完成后,我想再次打开服务器进行新会话。 Ex server.open();
我正在使用HTTP Node.js.关闭后再次打开服务器
为了防止新的会话,虽然我已经有一个活动的,我使用server.close();. 当这个活动会话完成后,我想再次打开服务器进行新会话。 Ex server.open();
像这样的事情?
var http = require('http');
var server = http.createServer(function(req, res) {
server.close();
setTimeout(function() {
res.end(function() {
server.listen(3000);
});
}, 5000);
}).listen(3000);
(其中setTimeout
模拟一些操作,可能需要一些时间)
但是,我认为,通知客户,他们必须等待一段时间,不仅仅是关闭服务器共有一个更好的解决方案:
var http = require('http');
var busy = false;
var server = http.createServer(function(req, res) {
if (busy) {
res.writeHead(503);
return res.end();
}
busy = true;
setTimeout(function() {
res.end(function() {
busy = false;
});
}, 5000);
}).listen(3000);
server.close()
使用回调运行server.listen()
,像这样:
server.close(function() {
server.listen(8080);
})
但是,一旦时间用完,我将如何再次打开新会话? – Hwende
这就是为什么'res.end()'处理程序中有'server.listen()':它将使服务器再次侦听新的传入请求。 – robertklep
它完美的作品。谢谢。 – Hwende