-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathserver.js
More file actions
34 lines (26 loc) · 954 Bytes
/
Copy pathserver.js
File metadata and controls
34 lines (26 loc) · 954 Bytes
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
var app = require('express')()
var http = require('http').Server(app)
var io = require('socket.io')(http)
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
})
app.get('/clients', (req, res) => {
res.send(Object.keys(io.sockets.clients().connected))
})
io.on('connection', socket => {
console.log(`A user connected with socket id ${socket.id}`)
socket.broadcast.emit('user-connected', socket.id)
socket.on('disconnect', () => {
socket.broadcast.emit('user-disconnected', socket.id)
})
socket.on('nudge-client', data => {
socket.broadcast.to(data.to).emit('client-nudged', data)
})
})
http.listen(3000, () => {
console.log('Listening on *:3000')
})