/
doodle-socket.js
39 lines (32 loc) · 1018 Bytes
/
doodle-socket.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
module.exports = function()
{
var connections = { };
var nsp = io.of('/doodle');
nsp.on('connection', function(socket) {
// give each connected user a random color so it's easier to tell them apart in the chat log //
socket.on('draw-data', function(data) {
// append this socket's id so we know who is talking //
data.id = socket.id;
socket.broadcast.emit('draw-data', data);
});
socket.on('user-message', function(data) {
data.color = socket.color;
broadcastMessage('user-message', data);
});
function dispatchStatus()
{
broadcastMessage('status', connections);
}
function broadcastMessage(message, data)
{
// remove socket.emit if you don't want the sender to receive their own message //
socket.emit(message, data);
socket.broadcast.emit(message, data);
}
// handle connections & disconnections //
connections[socket.id] = {}; dispatchStatus();
socket.on('disconnect', function() {
delete connections[socket.id]; dispatchStatus();
});
});
}();