关闭后再次打开服务器

时间:2015-08-29 11:55:23

标签: javascript node.js http

我正在使用HTTP Node.js。

为了防止新会话,我已经有一个活动的会话,我使用server.close();. 当这个活动会话结束时,我想再次为新会话打开服务器。 Ex server.open();

2 个答案:

答案 0 :(得分:1)

这样的东西?

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);

答案 1 :(得分:0)

使用server.close()的回调来运行server.listen(),如下所示:

server.close(function() { 
    server.listen(8080);
})