-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathserver.js
More file actions
51 lines (40 loc) · 1.29 KB
/
server.js
File metadata and controls
51 lines (40 loc) · 1.29 KB
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
var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server),
hbs = require('express-hbs'),
users = {};
//io.set('log level', 1);
app.engine('hbs', hbs.express3({partialsDir: __dirname + '/views/partials'}));
app.set('view engine', 'hbs');
app.set('views', __dirname + '/views');
app.use(express.static(__dirname + '/public'));
server.listen(81);
io.sockets.on('connection', function (socket) {
socket.on('getusers', function (data) {
socket.emit('userlist', JSON.stringify(users));
});
socket.on('join', function (user) {
u = JSON.parse(user);
socket.join(u.room);
users[u.uid] = u;
io.sockets.in(u.room).emit('adduser', user);
});
socket.on('leave', function (uid) {
io.sockets.in(users[uid].room).emit('removeuser', uid);
socket.leave(users[uid].room);
users[uid] = null;
});
socket.on('mousedown', function (drawevent) {
this.broadcast.to(drawevent.room).emit('mousedown' , drawevent);
});
socket.on('mouseup', function (drawevent) {
this.broadcast.to(drawevent.room).emit('mouseup' , drawevent);
});
socket.on('mousemove', function (drawevent) {
this.broadcast.to(drawevent.room).emit('mousemove' , drawevent);
});
});
app.get('/', function (req, res) {
res.render('index.hbs');
});