김보안의 블로깅
  • 🏠 Home
  • 📚 Project
    • Blockchain
      • 🎦 PickMe
      • 🎦 IoTC
      • 🎦 Blackchain
      • 📃 Gemology
      • 🎦 PickMe
      • 🎦 PickMe
    • AI
      • 👋 A.I. Dream Reader
      • 🎦 A.I. Dream Reader
    • Security
      • 🎦 SNAC
    • Education
      • 🎦 Smart Lecture
  • 🤸‍♂ Hobby
    • Music
      • Violin
      • Guitar
      • Piano
      • Drum
    • Flower
      • Flower Certificate
    • Sport
      • Ski
      • Skateboard
      • Golf
      • Boxing

2013년 7월 4일 목요일

[Node.js] 객체 정렬, 방 찾기, Usage

 SecureKim     오후 4:49     객체 정렬, 로드밸런싱, 소켓으로 방 찾기, 툴, CPU, loadbalancing, memory, Node.js, sorting     No comments   

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

다음에 Node.js 프로젝트를 할때 유용하게 쓰일 것 같아서 포스팅합니다. 마음껏 쓰셔도 좋습니다. 혹시 코드에 문제가 있으면 저한테도 알려주세요 ^^
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
이메일로 전송BlogThis!X에 공유Facebook에서 공유
최근 게시물 이전 게시물 홈

0 개의 댓글:

댓글 쓰기

페이지

  • 홈
  • Hobby

Categories

  • AI
  • AWS
  • Blockchain
  • Hardware
  • Javascript
  • Node.js
  • Plasma
  • Security
  • Study
  • Video
  • android
  • mysql
  • review
  • windows

Popular Posts

  • 회사 프록시와 인증서에 고통받는 그대를 위한 글 (Bash, Gradle, Python, wget, nodejs(npm), apt-get, cURL, git, yarn, androidStudio)
    대기업에 입사하면 장단점이 있는데, 단점 중에 하나가 회사에서 프록시를 사용하여 트래픽 감시를 하므로 프록시 설정을 해주어야 한다는 점 입니다. 특히, 회사에서는 https 트래픽도 감시를 하므로 인증서도 설정해 주어야 합니다. 그런데 문...
  • 다빈치리졸브로 영상의 음성 보정 (잡음 노이즈 없애기)
      잡음 없애는 방법 1. 음악 쪽 들어가서 음악에서 소스 우클릭 - Normalize Audio Levels 2. 우측의 Mixer에서 Dynamics 더블클릭, Effects아래 +누르고 Metering에 Meter 그럼 아래처럼 나오는데  Gat...
  • 블랙보드 강의 녹화 영상 다운로드 가능한 방법 (노설치)
    별도의 설치도 필요 없고 아주 쉽습니다. 구글 크롬브라우저 에서 블랙보드 녹화 영상에  다운로드 가능한 메뉴가 나오게 하는 코드입니다.  먼저 블랙보드 강의자료에 입장하고, 재생 버튼을 클릭 하지 않은 상태로 F12 를 입력합니다. 재생을 클릭하지 마...

Blog Archive

  • ►  2024 (2)
    • ►  11월 (2)
  • ►  2023 (2)
    • ►  10월 (1)
    • ►  1월 (1)
  • ►  2022 (10)
    • ►  12월 (1)
    • ►  11월 (3)
    • ►  9월 (1)
    • ►  8월 (1)
    • ►  6월 (2)
    • ►  3월 (2)
  • ►  2021 (9)
    • ►  12월 (3)
    • ►  11월 (1)
    • ►  6월 (1)
    • ►  5월 (2)
    • ►  4월 (2)
  • ►  2020 (12)
    • ►  10월 (1)
    • ►  9월 (2)
    • ►  7월 (1)
    • ►  6월 (1)
    • ►  5월 (5)
    • ►  4월 (1)
    • ►  2월 (1)
  • ►  2019 (14)
    • ►  10월 (2)
    • ►  7월 (1)
    • ►  3월 (4)
    • ►  2월 (2)
    • ►  1월 (5)
  • ►  2018 (14)
    • ►  12월 (2)
    • ►  11월 (4)
    • ►  10월 (1)
    • ►  8월 (2)
    • ►  5월 (4)
    • ►  1월 (1)
  • ►  2017 (12)
    • ►  10월 (2)
    • ►  9월 (9)
    • ►  5월 (1)
  • ►  2016 (8)
    • ►  10월 (2)
    • ►  8월 (1)
    • ►  6월 (1)
    • ►  1월 (4)
  • ►  2015 (6)
    • ►  12월 (3)
    • ►  10월 (1)
    • ►  6월 (1)
    • ►  5월 (1)
  • ►  2014 (10)
    • ►  11월 (1)
    • ►  9월 (1)
    • ►  7월 (1)
    • ►  6월 (1)
    • ►  5월 (3)
    • ►  4월 (1)
    • ►  3월 (2)
  • ▼  2013 (28)
    • ►  12월 (3)
    • ►  11월 (6)
    • ►  10월 (6)
    • ►  9월 (6)
    • ►  8월 (1)
    • ▼  7월 (3)
      • [Nginx] apache를 nginx로 window를 CentOS 로 !
      • [Node.js] 객체 정렬, 방 찾기, Usage
      • [Node.js] Redis 의 데이터 관리(쿼리,삽입,삭제)
    • ►  6월 (3)

구독

글
Atom
글
댓글
Atom
댓글

로드 중입니다...

각오

직접 해보지 않은 것은 포스팅 하지 않겠습니다.

Copyright © 김보안의 블로깅 | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates