INNER CODE UNIT · JavaScript
startServer
wangshengithub/staticshield · src/server.js:127
function startServer(opts) {
opts = opts || {};
var host = opts.host || '127.0.0.1';
var port = (opts.port === undefined || opts.port === null) ? DEFAULT_PORT : opts.port;
var guiPath = opts.guiPath || path.join(__dirname, '..', 'gui', 'index.html');
var guiHtml = fs.existsSync(guiPath) ? fs.readFileSync(guiPath, 'utf8') : null;
return new Promise(function (resolve, reject) {
var ctx = { port: null };
var server = http.createServer(makeHandler(guiHtml, ctx));
server.timeout = 120000; server.requestTimeout = 60000; server.headersTimeout = 65000; server.keepAliveTimeout = 5000;
server.on('error', function (e) { console.error('[server] 运行错误:', e.message); });
listen(server, port, host, 20, function (err, actualPort) {
if (err) return reject(err);
ctx.port = actualPort;
resolve({ server: server, port: actualPort, host: host, close: function () { server.close(); } });
});
});
}