Mercurial > hg > nodescore
diff nodescore.js @ 38:ea8d61c851c0
added chat server and more work on interface
author | tzara <rc-web@kiben.net> |
---|---|
date | Wed, 22 Aug 2012 12:51:28 +0000 |
parents | e4d2a8eb1450 |
children | 3ba24da53406 |
line wrap: on
line diff
--- a/nodescore.js Sun Aug 19 22:29:24 2012 +0000 +++ b/nodescore.js Wed Aug 22 12:51:28 2012 +0000 @@ -40,6 +40,31 @@ io.set('log level', 1); // reduce loggingi io.sockets.on('connection', function (socket) { + socket.on('nickname', function (nick, fn) { + if (nicknames[nick]) { + fn(true); + } else { + fn(false); + nicknames[nick] = socket.nickname = nick; + socket.broadcast.emit('announcement', nick + ' connected'); + io.sockets.emit('nicknames', nicknames); + } + }); + + + socket.on('disconnect', function(client) { + + if (!socket.nickname) return; + + delete nicknames[socket.nickname]; + socket.broadcast.emit('announcement', socket.nickname + ' disconnected'); + socket.broadcast.emit('nicknames', nicknames); + }); + + + socket.on('user message', function (msg) { + socket.broadcast.emit('user message', socket.nickname, msg); + }); //////////////////////////////////////////// // metronome //////////////////////////////////////////// @@ -144,8 +169,6 @@ var tock = setInterval(function(){ - - if (ztime >= 0 ){ // basic unit is still the second/1000ms - change this to tempoms? no i dont think so @@ -153,29 +176,33 @@ //////////////////////////////////////////// var counter = ztime/1000 - socket.emit('counterText', seq.voice, seq.counter, counter); + socket.broadcast.emit('counterText', seq.voice, seq.counter, counter); if (counter > 0 && counter <= outcount ) { - socket.broadcast.emit('countinFromServer', seq.voice, counter, "","", "white", "transparent"); + socket.broadcast.emit('countinFromServer', seq.voice, counter, "","stop in:", "red", "transparent"); + socket.broadcast.emit('counterText', seq.voice, seq.counter, counter); } // remove displayed number with " " at end of both countin/out if (counter == 0 ) { - - socket.broadcast.emit('countinFromServer', seq.voice, " ", "","", "white","transparent"); + socket.broadcast.emit('counterText', seq.voice, seq.counter, counter); + socket.broadcast.emit('countinFromServer', seq.voice, "///", "//","/", "green","transparent"); } - if (counter > (totaltime)-incount && counter <= totaltime ) { - socket.broadcast.emit('countinFromServer', seq.voice, counter-(totaltime-incount), "","", "red","gray"); + if (counter > (totaltime)-incount && counter <= totaltime ) { + + socket.broadcast.emit('countinFromServer', seq.voice, counter-(totaltime-incount), "","play in:", "green","black"); + socket.broadcast.emit('counterText', seq.voice, seq.counter, counter); } if (counter == (totaltime)-incount ) { - socket.broadcast.emit('countinFromServer', seq.voice, " ", "","", "red","gray"); + socket.broadcast.emit('countinFromServer', seq.voice, "+", "","playing..", "green","black"); + socket.broadcast.emit('counterText', seq.voice, seq.counter, counter); } // push out the pulse to metronome - + socket.broadcast.emit('counterText', seq.voice, seq.counter, counter); seq.metrobeat = (seq.metrobeat+1)%seq.beatsinbar ; socket.broadcast.emit('metroPulse', tempoms, seq.voice,seq.metrobeat); socket.emit('metroPulse', tempoms, seq.voice,seq.metrobeat); @@ -185,7 +212,8 @@ // flip the page if (ztime == 0){ - socket.emit('counterText', seq.voice, seq.counter, " "); + socket.broadcast.emit('counterText', seq.voice, seq.counter, counter); + //socket.emit('counterText', seq.voice, seq.counter, " "); seq.counter = (seq.counter + 1) % seq.durations.length socket.broadcast.emit("pageFlipfromserver", seq.voice, unit, time, seq.mm,seq.counter); // socket.emit("pageFlipfromserver", seq.voice, unit, time, seq.mm,seq.counter); @@ -193,12 +221,16 @@ step(seq); } - if (ztime < 0){} + if (ztime < 0){ + socket.broadcast.emit('counterText', seq.voice, seq.counter, counter); + } + // decrement the time ztime -= 1000 + socket.broadcast.emit('counterText', seq.voice, seq.counter, counter); }, tempoms) - + }; // socket.on('stopSeq', function () { @@ -261,7 +293,6 @@ so maybe latency is irrelevant in this context - we just need to stagger signals according to encoding decoding times.. hmmm */ - // periodically broadcast a ping @@ -300,10 +331,10 @@ serverTime(1000); socket.on('disconnect', function(client) { - console.log(client + " is gone..." ) + console.log(socket.nickname + " is gone..." ) clearInterval(st); }); - + });