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