각종 다양한 node의 라이브러리를 사용하려면 패키지 매니저인 npm 부터 가장 먼저 설치해야 된다. 이때 패키지들을 /usr/local 대신 사용자 폴더(~/.node_libraries)에 저장하기 위해서 .npmrc 를 만들어야 한다. (via http://blog.outsider.ne.kr/539)
1 2 3 4 5 6 7 8 9 | |
참고로, 모든 npm 소스는 ~/.node_libraries/.npm 아래에 저장되어 있다.
가장 간단한 express 서버는 다음과 같다. curl 로 로컬 서버에 접속해볼 수 있지만, 먼저 테스트를 위해서 아마존 EC2 콘솔에 접속해서 방화벽의 8080 포트를 열어둬야 한다.
var app = require(‘express’).createServer();
app.get(‘/’, function(req, res){
res.send(‘hello world’);
});
app.listen(8080);
가장 간단한 socket.io 서버와 클라이언트는 github 에 존재한다. (이상하게도 제대로된 매뉴얼을 찾기가 힘드니, 그냥 샘플 코드를 보기를 권한다)
1 2 3 | |
서버와 클라이언트간의 통신은 순전히 JSON 으로 구현된다. 보내는 쪽에서
1
| |
라고 보내고, 받는 쪽에서는
1 2 3 4 5 6 7 | |
이런 식의 전통적인 소켓 프로그래밍이 이루어진다. 브로드캐스팅은 그냥 소켓에 대고
1
| |
이라고 하면 끝. 첫 소감은
- 아 쉽다. 처음 소켓 프로그래밍을 배울 때의 느낌이야. 왜 지금까지 이런게 안되었을까..
- 소스가 노출될테니 게임 서버에서 해야 하는 모든 것 - 스니핑, 스피드핵, 프로토콜 해킹, 암호화, 한방핵 - 등을 다 구현해야겠지. 클라이언트에게 많은 권한을 줘서는 안될 것 같아..
- 이걸로 HTML5 캔버스에서 멀티플레이 가능한 로그라이크를 만들 수 있을까? ㅎㅎ
정도 되겠다. 한마디로 꽤 재미있는 장난감이 될 것 같다.