98 lines
2.8 KiB
JavaScript
98 lines
2.8 KiB
JavaScript
//NOTE: SERVER CONFIGURATION has 2 options. ENABLE 1 of 2 options
|
|
|
|
// //NOTE: option (1) - https server (443) + redirection 80 to 443
|
|
|
|
// //prepare credentials & etc
|
|
// var fs = require('fs');
|
|
// var https = require('https');
|
|
// var privateKey = fs.readFileSync('/etc/letsencrypt/live/choir.run/privkey.pem', 'utf8');
|
|
// var certificate = fs.readFileSync('/etc/letsencrypt/live/choir.run/fullchain.pem', 'utf8');
|
|
// var credentials = {
|
|
// key: privateKey,
|
|
// cert: certificate
|
|
// };
|
|
|
|
// //https WWW server @ port 443
|
|
// var express = require('express');
|
|
// var app = express();
|
|
// var httpsWebServer = https.createServer(credentials, app).listen(443, function() {
|
|
// console.log('[express] listening on *:443');
|
|
// });
|
|
|
|
// //http Redirection server @ port 80
|
|
// // ==> Don't get why this works.. all others not. ==> https://stackoverflow.com/a/23283173
|
|
// var http = require('http');
|
|
// var httpApp = express();
|
|
// var httpRouter = express.Router();
|
|
// httpApp.use('*', httpRouter);
|
|
// httpRouter.get('*', function(req, res) {
|
|
// var host = req.get('Host');
|
|
// // replace the port in the host
|
|
// host = host.replace(/:\d+$/, ":" + app.get('port'));
|
|
// // determine the redirect destination
|
|
// var destination = ['https://', host, req.url].join('');
|
|
// return res.redirect(destination);
|
|
// });
|
|
// var httpServer = http.createServer(httpApp);
|
|
// httpServer.listen(80);
|
|
|
|
// //https socket.io server @ port 443 (same port as WWW service)
|
|
// var io = require('socket.io')(httpsWebServer, {
|
|
// 'pingInterval': 1000,
|
|
// 'pingTimeout': 3000
|
|
// });
|
|
|
|
//NOTE: option (2) - simple http dev server (8080)
|
|
|
|
var http = require('http');
|
|
var express = require('express');
|
|
var app = express();
|
|
var httpServer = http.createServer(app);
|
|
httpServer.listen(8080);
|
|
|
|
//http socket.io server @ port 8080 (same port as WWW service)
|
|
var io = require('socket.io')(httpServer, {
|
|
'pingInterval': 1000,
|
|
'pingTimeout': 3000
|
|
});
|
|
|
|
//express configuration
|
|
app.use(express.static('public'));
|
|
|
|
//socket.io events
|
|
io.on('connection', function(socket) {
|
|
|
|
//entry log.
|
|
console.log('someone connected.');
|
|
|
|
//on 'sound' --> relay the message to everybody INCLUDING sender
|
|
// var soundactive = false;
|
|
socket.on('sound', function(sound) {
|
|
|
|
//relay the message to everybody EXCEPT the sender
|
|
socket.broadcast.emit('sound', sound);
|
|
|
|
//DEBUG
|
|
console.log('sound.name :' + sound.name);
|
|
console.log('sound.action :' + sound.action);
|
|
console.log('sound.group :' + sound.group);
|
|
});
|
|
|
|
//on 'clap' --> relay the message to everybody INCLUDING sender
|
|
socket.on('clap', function(clap) {
|
|
|
|
//relay the message to everybody INCLUDING sender
|
|
io.emit('clap', clap);
|
|
|
|
//DEBUG
|
|
console.log('clap.name :' + clap.name);
|
|
});
|
|
|
|
//on 'disconnect'
|
|
socket.on('disconnect', function() {
|
|
|
|
console.log('someone disconnected.');
|
|
|
|
});
|
|
});
|