|
|
@@ -1,4 +1,5 @@
|
|
1
|
1
|
var fs = require('fs');
|
|
|
2
|
+var compression = require('compression')
|
|
2
|
3
|
var https = require('https');
|
|
3
|
4
|
var express = require('express');
|
|
4
|
5
|
var path = require('path');
|
|
|
@@ -8,10 +9,12 @@ var serveIndex = require('serve-index');
|
|
8
|
9
|
var basic_auth = require('basic-auth');
|
|
9
|
10
|
var FileStreamRotator = require('file-stream-rotator');
|
|
10
|
11
|
var morgan = require('morgan');
|
|
|
12
|
+var hsts = require('hsts');
|
|
11
|
13
|
var route_manager = require("../ip-project-server/utils/route-manager.js");
|
|
12
|
14
|
var scheduler = require("../ip-project-server/presenters/schedule-controller.js");
|
|
13
|
15
|
var app = express();
|
|
14
|
16
|
var logDirectory = 'log'
|
|
|
17
|
+var nicklist = {};
|
|
15
|
18
|
|
|
16
|
19
|
/*
|
|
17
|
20
|
|
|
|
@@ -37,19 +40,6 @@ var auth = function (req, res, next) {
|
|
37
|
40
|
};
|
|
38
|
41
|
};
|
|
39
|
42
|
|
|
40
|
|
-io.on('connection', function(socket){
|
|
41
|
|
- console.log('a user connected');
|
|
42
|
|
- nicklist[socket.id] = getRandomInt(0,99999);
|
|
43
|
|
- socket.on('chat message', function(msg){
|
|
44
|
|
- console.log(msg.nick + '#' + nicklist[socket.id] + ': ' + msg.msg);
|
|
45
|
|
- msg.nick = msg.nick + '#' + nicklist[socket.id];
|
|
46
|
|
- io.emit('chat message', msg);
|
|
47
|
|
- });
|
|
48
|
|
- socket.on('disconnect', function(){
|
|
49
|
|
- console.log('user disconnected');
|
|
50
|
|
- delete nicklist[socket.id];
|
|
51
|
|
- });
|
|
52
|
|
-});
|
|
53
|
43
|
|
|
54
|
44
|
fs.existsSync(logDirectory) || fs.mkdirSync(logDirectory)
|
|
55
|
45
|
var accessLogStream = FileStreamRotator.getStream({
|
|
|
@@ -68,7 +58,13 @@ scheduler.register_existing_events();
|
|
68
|
58
|
*/
|
|
69
|
59
|
|
|
70
|
60
|
// Always use SSL, comes first.
|
|
|
61
|
+app.use(compression());
|
|
71
|
62
|
app.use(forceSSL);
|
|
|
63
|
+app.use(hsts({
|
|
|
64
|
+ maxAge: 31536000000,
|
|
|
65
|
+ includeSubDomains: true, // Must be enabled to be approved by Google
|
|
|
66
|
+ preload: true
|
|
|
67
|
+}))
|
|
72
|
68
|
|
|
73
|
69
|
app.use(bodyParser.json()); // for parsing application/json
|
|
74
|
70
|
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
|
|
|
@@ -115,7 +111,7 @@ var prkey = fs.readFileSync('key.pem');
|
|
115
|
111
|
var certi = fs.readFileSync('cert.pem');
|
|
116
|
112
|
var capem = fs.readFileSync('ca.pem');
|
|
117
|
113
|
|
|
118
|
|
-https.createServer({
|
|
|
114
|
+var s = https.createServer({
|
|
119
|
115
|
key: prkey,
|
|
120
|
116
|
cert: certi,
|
|
121
|
117
|
ca: capem
|
|
|
@@ -126,3 +122,26 @@ https.createServer({
|
|
126
|
122
|
app.listen(80, function () {
|
|
127
|
123
|
console.log('Now accepting HTTP connections on port 80.');
|
|
128
|
124
|
});
|
|
|
125
|
+
|
|
|
126
|
+function getRandomInt(min, max) {
|
|
|
127
|
+ min = Math.ceil(min);
|
|
|
128
|
+ max = Math.floor(max);
|
|
|
129
|
+ return Math.floor(Math.random() * (max - min)) + min;
|
|
|
130
|
+}
|
|
|
131
|
+
|
|
|
132
|
+var io = require('socket.io')(s);
|
|
|
133
|
+
|
|
|
134
|
+io.on('connection', function(socket){
|
|
|
135
|
+ console.log('a user connected');
|
|
|
136
|
+ nicklist[socket.id] = getRandomInt(0,99999);
|
|
|
137
|
+ socket.on('chat message', function(msg){
|
|
|
138
|
+ console.log(msg.nick + '#' + nicklist[socket.id] + ': ' + msg.msg);
|
|
|
139
|
+ msg.nick = msg.nick + '#' + nicklist[socket.id];
|
|
|
140
|
+ io.emit('chat message', msg);
|
|
|
141
|
+ });
|
|
|
142
|
+ socket.on('disconnect', function(){
|
|
|
143
|
+ console.log('user disconnected');
|
|
|
144
|
+ delete nicklist[socket.id];
|
|
|
145
|
+ });
|
|
|
146
|
+});
|
|
|
147
|
+
|