Browse Source

Server code cleanup.

Nathaniel van Diepen 10 years ago
parent
commit
8b212711e8
1 changed files with 25 additions and 16 deletions
  1. 25 16
      app/OmnomIRC.js

+ 25 - 16
app/OmnomIRC.js

@@ -39,6 +39,7 @@ var fs = require('fs'),
 		var defaults = {
 				port: 80,
 				loglevel: 3,
+				threads: require('os').cpus().length,
 				redis: {
 					port: 6379,
 					host: 'localhost'
@@ -100,7 +101,7 @@ if(cluster.isMaster){
 		logger.info('First worker online');
 		iWorker.send('S');
 	});
-	for(var i=1;i<require('os').cpus().length;i++){
+	for(var i=1;i<options.threads;i++){
 		cluster.fork().on('online',function(){
 			logger.info('Child socket worker online');
 		});
@@ -159,11 +160,7 @@ if(cluster.isMaster){
 				});
 				irc.on('CHANMSG',function(d){
 					console.log(d);
-					io.sockets.in(d.receiver).emit('message',{
-						message: d.message,
-						room: d.reciever,
-						from: d.sender
-					})
+					message(d.reciever,d.sender,d.message);
 				});
 				irc.connect();
 				logger.debug('Connecting to IRC');	
@@ -310,11 +307,7 @@ if(cluster.isMaster){
 			sendUserList(data.name);
 			socket.get('nick',function(e,nick){
 				logger.debug(nick+' joined '+data.name);
-				io.sockets.in(data.name).emit('message',{
-					message: nick+' joined the channel',
-					room: data.name,
-					from: 0
-				});
+				fromServer(data.name,nick+' joined the channel');
 			});
 		});
 		socket.on('part',function(data){
@@ -353,11 +346,7 @@ if(cluster.isMaster){
 				var temp = [],i;
 				for(i in users) i && i != null && temp.push(users[i]);
 				users = temp;
-				socket.emit('message',{
-					message: data.name+" users:\n\t\t"+users.join("\n\t\t"),
-					room: data.name,
-					from: 0
-				});
+				fromServer(data.name,data.name+" users:\n\t\t"+users.join("\n\t\t"),socket);
 				sendUserList(data.name);
 			});
 		});
@@ -408,6 +397,26 @@ if(cluster.isMaster){
 						});
 					});
 				}
+			},
+			message = function(room,from,message,socket){
+				if(typeof socket == 'undefined'){
+					socket = io.sockets.in(room);
+				}
+				socket.emit('message',{
+					message: message,
+					room: room,
+					from: from
+				})
+			},
+			fromServer = function(room,message,socket){
+				if(typeof socket == 'undefined'){
+					socket = io.sockets.in(room);
+				}
+				socket.emit('message',{
+					message: message,
+					room: room,
+					from: 0
+				});
 			};
 	});
 }