mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-07-20 18:18:56 +00:00
refactor(server) createServer, createRedirect, addSockets, logServer
This commit is contained in:
parent
15dcc2d8db
commit
36a72157d3
1 changed files with 88 additions and 75 deletions
163
lib/server.js
163
lib/server.js
|
|
@ -53,10 +53,9 @@
|
|||
*/
|
||||
function start(options) {
|
||||
var redirectServer, port, ip, ssl, sslPort,
|
||||
sockets, httpServer, serverLog,
|
||||
HTTP = 'http://',
|
||||
HTTPS = 'https://',
|
||||
config = main.config;
|
||||
HTTP = 'http://',
|
||||
HTTPS = 'https://',
|
||||
config = main.config;
|
||||
|
||||
if (!options)
|
||||
options = {};
|
||||
|
|
@ -75,84 +74,98 @@
|
|||
(main.WIN32 ? '127.0.0.1' : '0.0.0.0'),
|
||||
|
||||
ssl = options.ssl,
|
||||
sslPort = config.sslPort,
|
||||
sslPort = config.sslPort;
|
||||
|
||||
sockets = function(pServer) {
|
||||
var listen, msg,
|
||||
status = 'off';
|
||||
|
||||
if (config.socket && Socket) {
|
||||
listen = Socket.listen(pServer);
|
||||
|
||||
if (listen) {
|
||||
status = 'on';
|
||||
Console.init();
|
||||
Terminal.init();
|
||||
}
|
||||
}
|
||||
|
||||
msg = CloudFunc.formatMsg('sockets', '', status);
|
||||
|
||||
Util.log(msg);
|
||||
},
|
||||
|
||||
httpServer = function() {
|
||||
expressApp = express.getApp([
|
||||
Rest,
|
||||
Route,
|
||||
join,
|
||||
controller
|
||||
]);
|
||||
|
||||
Server = http.createServer(expressApp || respond);
|
||||
|
||||
Server.on('error', Util.log.bind(Util));
|
||||
Server.listen(port, ip);
|
||||
serverLog(HTTP, port);
|
||||
sockets(Server);
|
||||
},
|
||||
|
||||
serverLog = function(http, port) {
|
||||
Util.log('* Server running at ' + http + ip + ':' + port);
|
||||
};
|
||||
/* server mode or testing mode */
|
||||
if (config.server)
|
||||
if (ssl) {
|
||||
Util.log('* Redirection http -> https is setted up');
|
||||
serverLog(HTTP, port);
|
||||
if (!config.server)
|
||||
Util.log('Cloud Commander testing mode');
|
||||
else
|
||||
if (!ssl)
|
||||
createServer(port, ip, HTTP);
|
||||
else {
|
||||
createRedirect(port, ip, HTTPS);
|
||||
|
||||
redirectServer = http.createServer(function(req, res) {
|
||||
var url,
|
||||
host = req.headers.host,
|
||||
parsed = URL.parse(host),
|
||||
hostName = parsed.protocol;
|
||||
|
||||
url = HTTPS + hostName + sslPort + req.url;
|
||||
|
||||
main.redirect({
|
||||
response: res,
|
||||
url: url
|
||||
});
|
||||
});
|
||||
|
||||
redirectServer.listen(port, ip);
|
||||
|
||||
Server = https.createServer(ssl, respond);
|
||||
Server.on('error', function (error) {
|
||||
Util.log(error, '\nCould not use https port: ' + sslPort);
|
||||
createServer(sslPort, ip, HTTP, ssl, function() {
|
||||
Util.log('Could not use https port: ' + sslPort);
|
||||
redirectServer.close();
|
||||
Util.log('* Redirection http -> https removed');
|
||||
httpServer();
|
||||
createServer(port, ip);
|
||||
});
|
||||
|
||||
sockets(Server);
|
||||
|
||||
Server.listen(sslPort, ip);
|
||||
serverLog(HTTPS, sslPort);
|
||||
} else
|
||||
httpServer();
|
||||
}
|
||||
}
|
||||
|
||||
function createRedirect(port, ip, protocol) {
|
||||
var server = function(req, res) {
|
||||
var url,
|
||||
host = req.headers.host,
|
||||
parsed = URL.parse(host),
|
||||
hostName = parsed.protocol;
|
||||
|
||||
url = protocol + hostName + sslPort + req.url;
|
||||
|
||||
main.redirect({
|
||||
response: res,
|
||||
url: url
|
||||
});
|
||||
};
|
||||
|
||||
Util.log('* Redirection http -> https is setted up');
|
||||
logServer(port, ip, http);
|
||||
|
||||
http.createServer(server)
|
||||
.listen(port, ip);
|
||||
}
|
||||
|
||||
function createServer(port, ip, protocol, ssl, callback) {
|
||||
var server, app;
|
||||
|
||||
expressApp = express.getApp([
|
||||
Rest,
|
||||
Route,
|
||||
join,
|
||||
controller
|
||||
]);
|
||||
|
||||
app = expressApp || respond;
|
||||
|
||||
if (ssl)
|
||||
server = https.createServer(ssl, app);
|
||||
else
|
||||
Util.log('Cloud Commander testing mode');
|
||||
server = http.createServer(app);
|
||||
|
||||
server.on('error', function(error) {
|
||||
Util.log(error);
|
||||
Util.exec(callback, error);
|
||||
});
|
||||
|
||||
server.listen(port, ip);
|
||||
|
||||
logServer(port, ip, protocol);
|
||||
addSockets(server);
|
||||
}
|
||||
|
||||
function logServer(port, ip, http) {
|
||||
Util.log('* Server running at ' + http + ip + ':' + port);
|
||||
}
|
||||
|
||||
function addSockets(server) {
|
||||
var listen, msg,
|
||||
config = main.config,
|
||||
status = 'off';
|
||||
|
||||
if (config.socket && Socket) {
|
||||
listen = Socket.listen(server);
|
||||
|
||||
if (listen) {
|
||||
status = 'on';
|
||||
Console.init();
|
||||
Terminal.init();
|
||||
}
|
||||
}
|
||||
|
||||
msg = CloudFunc.formatMsg('sockets', '', status);
|
||||
|
||||
Util.log(msg);
|
||||
}
|
||||
|
||||
function respond(req, res) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue