Tools.
var Tools={ //소켓 전체를 받아서 방을 돌려준다. getRoomBySocket:function(obj){ var sockId=io.sockets.manager.roomClients[obj.id]; var r= null; for(var k in sockId){ if(!sockId.hasOwnProperty(k)) continue r=k; } if(r!=null && typeof r !="undefined") r=r.split("/")[1]; else r=null; console.log("[ function ] getRoomBySocket : ",r); return r; }, //객체를 소팅한다. sorting: function(f, r, p){ var key = function (x) {return p ? p(x[f]) : x[f]}; return function (a,b) { var A = key(a), B = key(b); return ((A < B) ? -1 : (A > B) ? +1 : 0) * [-1,1][+!!r]; } }, //CPU , MEMORY 정보를 알려준다. updateServerState:function(callback){ var freemem=os.freemem(); var totalmem=os.totalmem(); var memUse=Math.round((totalmem-freemem)/totalmem*100); var r=null; os_util.cpuUsage(function(v){ cpuUse=Math.round(v*100); r={cpu : cpuUse , mem : memUse}; callback(r); }); } }; /* *사용법 * 소켓 가지고 그 소켓이 join된 방을 찾고 싶을 때. */ Tools.getRoomBySocket(socket); /* * 객체 소팅 */ var book=[ { "price" : "500", "name" : "andromeda" }, { "price" : "1500", "name" : "thebook" }]; // '가격' 높은거에서 낮은거로 소팅 book.sort(Tools.sorting('price', true, parseInt)); // '책 제목'의 a-z까지 순서로 소팅 book.sort(Tools.sorting('name', false, function(a){ return a.toUpperCase() })); /* * Server의 CPU, MEM 사용량 조사를 동기적으로 받아서 처리하고 싶을 때. */ Tools.updateServerState(function(r){ console.log("cpu : ",r.cpu," mem : ",r.mem); })