summaryrefslogtreecommitdiff
path: root/server.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2013-03-04 16:56:12 -0500
committerJules Laplace <jules@okfoc.us>2013-03-04 16:56:12 -0500
commitbd0d666340c3660d17b538cc8fda88ce3d9f81ff (patch)
treeacf43d7731f20d1b4d46e196195d52c4e5784250 /server.js
parent915f6f2bf830260301d8117a2233e5d2c7788c34 (diff)
add roster.js for handling da userlist
Diffstat (limited to 'server.js')
-rw-r--r--server.js18
1 files changed, 12 insertions, 6 deletions
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);
} );
});