123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- var express = require('express'),
- compression = require('compression'),
- serveStatic = require('serve-static'),
- cors = require('cors'),
- morgan = require('morgan'),
- path = require('path'),
- fs = require('fs'),
- http = require('http'),
- https = require('https'),
- logger = require('./server/logger'),
- config = require('./server/readConfig')
- var app = express();
- function registerReflector(srv) {
- if (global.configuration.reflector === undefined)
- global.configuration.reflector = false;
- if (global.configuration.reflector) {
- logger.info('register reflector server...\n');
- var reflectorServer = require('lcs-reflector'),
- sio = require('socket.io')(srv);
- sio.set('transports', ['websocket']);
- sio.sockets.on('connection', reflectorServer.OnConnection);
- global.instances = {};
- }
- }
- function startServer() {
- logger.info('Welcome to LiveCoding.space App server!\n');
- config.readConfigFile();
- app.use(compression());
- app.use(serveStatic(__dirname + '/public'));
- app.use(cors());
-
-
-
-
-
- app.use(morgan('combined'));
-
-
- function readDirR(dir) {
- if (fs.statSync(dir).isDirectory()) {
- return Array.prototype.concat(...fs.readdirSync(dir).map(f => readDirR(path.join(dir, f))
- ))
- } else {
- if ((dir.indexOf('.yaml') !== -1) || (dir.indexOf('.js') !== -1) || (dir.indexOf('.html') !== -1)
- || (dir.indexOf('.json') !== -1))
-
- return dir.replace(__dirname, '').replace(/\\/g, '/').replace('/public/', "/");
- }
- }
- app.get('/proxy-files', function (req, res) {
-
- res.writeHead(200, { "Content-Type": "application/json" });
- let json = JSON.stringify(readDirR(__dirname + '/public/defaults/proxy/'));
- res.end(json);
- });
- app.get('/world-files', function (req, res) {
-
- res.writeHead(200, { "Content-Type": "application/json" });
- let json = JSON.stringify(readDirR(__dirname + '/public/defaults/worlds/'));
- res.end(json);
- });
-
- app.get('*', function (req, res) {
- res.sendFile(path.join(__dirname + '/public/', 'index.html'))
- })
-
-
-
- var conf = config.parseConfigOptions();
- var srv = conf.ssl ? https.createServer(conf.sslOptions, app).listen(conf.port) : http.createServer(app).listen(conf.port);
- console.log('Serving on port ' + conf.port);
- registerReflector(srv);
- }
- exports.start = startServer;
|