-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathserver.js
91 lines (69 loc) · 1.74 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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
var http = require('http');
var md5 = require('MD5');
httpServer = http.createServer(function(req, res){
console.log('Init Node Server');
});
httpServer.listen(1337);
var io = require('socket.io').listen(httpServer);
var users = {};
io.sockets.on('connection', function(socket){
console.log('New user');
var me = false;
/**
* Gestion des users
*/
for(var k in users ){
socket.emit('newUser', users[k]);
}
socket.on('login', function(user){
me = user;
me.id = user.username;
me.username = user.username;
me.mail = user.mail;
me.avatar = 'https://gravatar.com/avatar/'+md5(me.mail)+'?s=50';
socket.broadcast.emit('logged', me);
io.sockets.emit('newUser', me);
users[me.id] = me;
});
socket.on('disconnect', function(){
if(!me){
return false;
}
delete users[me.id];
socket.broadcast.emit('disUser', me);
});
/**
* Gestion des messages
*/
socket.on('sendMessage', function(message){
io.sockets.emit('addMessage', {user: me, message: message});
socket.broadcast.emit('playBeep');
});
socket.on('writeMessage', function(){
socket.broadcast.emit('addWriteNotif', me);
});
socket.on('resetMessage', function(){
socket.broadcast.emit('removeWriteNotif', me);
});
/**
* Tableau
*/
socket.on('initSheet', function(){
socket.broadcast.emit('initSheet');
});
socket.on('initPath', function(data){
socket.broadcast.emit('initPath', data);
});
socket.on('endPath', function(){
socket.broadcast.emit('endPath');
});
socket.on('drawPoint', function(data){
socket.broadcast.emit('drawPoint', data);
});
socket.on('drawSegment', function(data){
socket.broadcast.emit('drawSegment', data);
});
socket.on('drawRectangle', function(data){
socket.broadcast.emit('drawRectangle', data);
});
});