refactor(server) createServer, createRedirect, addSockets, logServer

This commit is contained in:
coderaiser 2014-02-25 06:19:19 -05:00
parent 15dcc2d8db
commit 36a72157d3

View file

@ -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) {