-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
68 lines (47 loc) · 1.53 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
const express = require('express');
const bodyParser = require('body-parser')
const cookieParser = require('cookie-parser')
const session = require('express-session')
var FileStore = require('session-file-store')(session)
const io = require('socket.io');
const sharedsession = require('express-socket.io-session')
const app = express();
var sessions = {}
var sessconf = session({
store: new FileStore({}),
secret: 'keyboard cat',
resave: true,
saveUninitialized: true
})
// middleware
app.use(bodyParser.urlencoded({ extended: true }))
app.use(cookieParser())
app.use(sessconf)
// static content
app.use(express.static("public"))
app.get('/', (req, res) => {
res.sendFile(__dirname + '/routes/welcome/index.html')
})
app.get('/game', (req, res) => {
res.sendFile(__dirname + '/routes/game/index.html')
})
app.post('/login', (req, res) => {
console.log('(POST) Login: ' + req.body.name + ' into room ' + req.body.room + '.')
console.log('setting the session name for this one')
req.session.name = req.body.name;
req.session.room = req.body.room;
res.redirect('/game')
})
let server = app.listen(1337, () => console.log('listening...'))
var ws = io(server)
ws.use((socket, next) => {
sessconf(socket.request, {}, next)
})
ws.on('connection', socket => {
console.log('session from socket.io', socket.request.session.name)
socket.emit('init', {})
socket.on('message', data => console.log(data))
socket.on('disconnect', () => {
console.log(socket.request.session.name)
})
})