From bd0d666340c3660d17b538cc8fda88ce3d9f81ff Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 4 Mar 2013 16:56:12 -0500 Subject: add roster.js for handling da userlist --- server.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'server.js') diff --git a/server.js b/server.js index 3953267..bb21514 100644 --- a/server.js +++ b/server.js @@ -88,9 +88,11 @@ function Channel() { // CHATROOM STUFF Channel.prototype.join = function(user, socket){ + this.players[ socket.id ] = user; this.playerCount++; } -Channel.prototype.part = function(){ +Channel.prototype.part = function(socket){ + delete this.players[ socket.id ]; this.playerCount = Math.max( 0, this.playerCount - 1 ); } Channel.prototype.pushMessage = function(message){ @@ -165,27 +167,31 @@ Channel.prototype.startWinning = function(){ this.setTimeout( this.startDrawing, Delay.WINNING ); } Channel.prototype.startWaiting = function(){ + this.images = {}; + this.imageCount = 0; this.state = State.WAITING; io.sockets.emit( 'event-state', this.getState() ); } - var game = new Channel (); io.sockets.on( 'connection', function(socket){ socket.emit( 'event-welcome', game.report() ); socket.on( 'event-join', function(data){ + data.id = socket.id; + socket.user = data; game.join(data, socket); game.checkState(); - socket.broadcast.emit('event-join', data); + io.sockets.emit('event-join', data); } ); socket.on( 'event-message', function(data){ game.pushMessage(data); socket.broadcast.emit('event-message', data); } ); - socket.on( 'disconnect', function(data){ - game.part(data, socket); + socket.on( 'disconnect', function(){ + var user = socket.user; + game.part(socket); game.checkState(); - socket.broadcast.emit('event-part', data); + socket.broadcast.emit('event-part', user); } ); }); -- cgit v1.2.3-70-g09d2