mirror of
				https://github.com/KevinMidboe/zoff.git
				synced 2025-10-29 18:00:23 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			123 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var app = require('./index.js');
 | |
| var path = require('path');
 | |
| var publicPath = path.join(__dirname, 'public');
 | |
| var debug = require('debug')('king:server');
 | |
| var http = require('http');
 | |
| //var config = require('../config/index');
 | |
| 
 | |
| /**
 | |
| * Get port from environment and store in Express.
 | |
| */
 | |
| //var env = app.get('env');
 | |
| var port = 8080;
 | |
| app.set('port', port);
 | |
| 
 | |
| var cluster = require('cluster');
 | |
| if (cluster.isMaster) {
 | |
|     var numWorkers = require('os').cpus().length;
 | |
|     for (var i = 0; i < numWorkers; i++) cluster.fork();
 | |
|     console.log('[CLUSTER] Master cluster setting up ' + numWorkers + ' workers...');
 | |
| 
 | |
|     cluster.on('online', function(worker) {
 | |
|         console.log('[CLUSTER] Worker ' + worker.process.pid + ' is online');
 | |
|     });
 | |
|     cluster.on('exit', function(worker, code, signal){
 | |
|         console.log('[CLUSTER] Worker ' + worker.process.pid + ' died with code: ' + code + ', and signal: ' + signal);
 | |
|         console.log('[CLUSTER] Starting a new worker');
 | |
|         cluster.fork();
 | |
|     });
 | |
| } else {
 | |
|     /**
 | |
|     * Create HTTP server.
 | |
|     */
 | |
|     try {
 | |
|         var cert_config = require(path.join(path.join(__dirname, 'config'), 'cert_config.js'));
 | |
|     	var fs = require('fs');
 | |
|     	var privateKey  = fs.readFileSync(cert_config.privateKey).toString();
 | |
|     	var certificate = fs.readFileSync(cert_config.certificate).toString();
 | |
|     	var ca          = fs.readFileSync(cert_config.ca).toString();
 | |
|     	var credentials = {
 | |
|     		key: privateKey,
 | |
|     		cert: certificate,
 | |
|     		ca: ca
 | |
|     	};
 | |
| 
 | |
|     	var https = require('https');
 | |
|     	server = https.Server(credentials, app);
 | |
| 
 | |
|     	var cors_proxy = require('cors-anywhere');
 | |
| 
 | |
|     	cors_proxy.createServer({
 | |
|     		requireHeader: ['origin', 'x-requested-with'],
 | |
|     		removeHeaders: ['cookie', 'cookie2'],
 | |
|     		httpsOptions: credentials
 | |
|     	}).listen(8081, function() {
 | |
|     		console.log('Running CORS Anywhere on :' + 8081);
 | |
|     	});
 | |
|     } catch(err){
 | |
|     	console.log("Starting without https (probably on localhost)");
 | |
|     	var cors_proxy = require('cors-anywhere');
 | |
|     	cors_proxy.createServer({
 | |
|     		requireHeader: ['origin', 'x-requested-with'],
 | |
|     		removeHeaders: ['cookie', 'cookie2'],
 | |
|     	}).listen(8081, function() {
 | |
|     		console.log('Running CORS Anywhere on :' + 8081);
 | |
|     	});
 | |
|     	var http = require('http');
 | |
|     	server = http.Server(app);
 | |
|     	add = ",http://localhost:80*,http://localhost:8080*,localhost:8080*, localhost:8082*,http://zoff.dev:80*,http://zoff.dev:8080*,zoff.dev:8080*, zoff.dev:8082*";
 | |
|     }
 | |
|     var port = 8080;
 | |
| 
 | |
|     /**
 | |
|     * Listen on provided port, on all network interfaces.
 | |
|     */
 | |
|     server.listen(port);
 | |
|     server.on('error', onError);
 | |
|     server.on('listening', onListening);
 | |
| 
 | |
|     /**
 | |
|     * Socket.io
 | |
|     */
 | |
|     var io = app.socketIO;
 | |
|     io.listen(server);
 | |
|     //socketIO.set('transports', ['websocket']);
 | |
| }
 | |
| 
 | |
| 
 | |
| /**
 | |
| * Event listener for HTTP server "error" event.
 | |
| */
 | |
| 
 | |
| function onError(error) {
 | |
|     if (error.syscall !== 'listen') {
 | |
|         throw error;
 | |
|     }
 | |
| 
 | |
|     var bind = typeof port === 'string' ? 'Pipe ' + port : 'Port ' + port;
 | |
| 
 | |
|     // handle specific listen errors with friendly messages
 | |
|     switch (error.code) {
 | |
|         case 'EACCES':
 | |
|         console.error(bind + ' requires elevated privileges');
 | |
|         process.exit(1);
 | |
|         break;
 | |
|         case 'EADDRINUSE':
 | |
|         console.error(bind + ' is already in use');
 | |
|         process.exit(1);
 | |
|         break;
 | |
|         default:
 | |
|         throw error;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /**
 | |
| * Event listener for HTTP server "listening" event.
 | |
| */
 | |
| 
 | |
| function onListening() {
 | |
|     var addr = server.address();
 | |
|     var bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port;
 | |
|     debug('Listening on ' + bind);
 | |
| }
 |