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);
     });
-    
+
 });