최근 Node.js를 가지고 이것 저것 해보다가, 거의 대부분의 사람들이 만들어본다는 채팅서버 예제를 나도 한번 만들어봤다.

너무 쉬운부분이라서 쓸내용도 없지만... 아래와 같이 모듈화 해서 외부에서 소켓이 listening 할 server(http)를 열어서 넘겨주면 된다.



	
const socketio = require('socket.io');

exports.socketServer = function(server){
	var io = socketio.listen(server);
 
	io.sockets.on('connection', function(socket){       	
		try{
			// connect 이벤트가 발생할때 할것들.
	
    			socket.on('command', function(data){   		
				// 각 개발자가 정의한 command 이벤트가 올경우 할 것들 정의하거나,
                               // 아래와 같이 소켓에 쏴주기.(브로드 캐스트를 이용해도 됨)
                               socket.emit('command-response',{message: '전달된 이벤트에 대해서 처리하고 나서 보낼 응답'});
    			}); 	 		   
		}
		catch(err){
			// log 찍을려면 여기서 찍어도 됨.
                        console.log("에러났다!!!!");
		} 
	});
};


블로그 이미지

rekun,ekun 커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

프로시환경에서 npm을 사용하려고하면 곧 좌절에 빠지게 된다..


npm이 http를 사용해서 패키지들을 다운로드 받는 방식이기 때문에 프록시 환경이라면... http응답이 없거나, https 터널링에 실패하게 된다.


그래서 git으로 node를 받아서, 컴파일한후 express를 회사에서 한번 받아볼려고 했더니,,, 역시나 좌절!!!


아래와 같이 손쉽게 프록시 셋팅을 끝내버리고 npm을 사용하자.



$ sudo npm config set proxy  [proxyip:port]

$ sudo npm config set registry "http://registry.npmjs.org/"



끝....!!!



블로그 이미지

rekun,ekun 커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

Node를 설치하고나서 이제는 웹앱을 만드는 순서로 옮겨가게 될텐데...

그냥 맨바닥에서 다 개발하는 시대는 이제 끝난것 같다.


서블릿 개발할때도 스프링이나 스트럿츠 그리고 나가서는 iBatis,Hibernate등을 써서 개발하는 곳이 많은데, 노드도 굉장히 준비가 잘되어 있는것 같다.


그 대표적인 웹 개발 프레임워크인 Express를 글로벌 하게 설치해두자.


설치방법!!! 초간단.

$ sudo npm install express -g -->-g 옵션이 글로벌 설치를 의미한다.



설치하고 나서 이제 Express 프로젝트를 하나 만들어보면~~ 더 간단 ㅠ.ㅠ

 $ express node_express --> node_express가 프로젝트명


돌려볼까?

$ cd node_express

$ sudo npm install

$ node app


브라우저에서 접속.



놀라울따름이다.!!!



블로그 이미지

rekun,ekun 커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

Tag Express, node

아주 오랜만에 집에서 리눅스 랩톱을 켜놓고 개발환경을 셋팅하고 있는데...

예전에 너무 편하게만 사용하던 apt-get으로 node 를 설치했더니..버전이 무려.. ㅠ.ㅠ 0.6.14 였다. 


왜 node 호스팅 업체에서 0.6.14를 사용하는지 그 이유를 단박에 알게 되었다.


그런데 한가지 문제점은 npm을 설치하고 나서 express를 설치할려고 하는데!!!!


설치가 안된다. node 버전이 너무 낮아서...


그래서 과감하게 이미 설치되어 있는 node를 아래 명령으로 싹 지워버리고....

 $ sudo apt-get remove nodejs


최신 안정 버전을 설치하였다.

설치 방법은 아래와 같으니 이후 혹시라도 설치할 일이 있는 사람들은 참고 바란다.



기본 설치를 위한 패키지들을 아래와 같이 설치한다.


 $ sudo apt-get install g++ curl libssl-dev  apache2-utils git-core make automake autoconf




그리고, git을 이용하여 소스들을 땡겨와서 node js사이트에 나오는 최신- 안정 버전으로 설치를 한다. 지금의 최신버전은 v0.10.9이다.


http://www.nodejs.org/download/



$ git clone git://github.com/joyent/node.git 또는 github.com/ry/node.git

$ cd node

$ git tag  ---> 버전들이 주욱 나온다.

$ git checkout v0.10.9 --> 위에서 확인한 걸로 체크아웃한다.



이제는 컴파일하고 설치한다.

$ ./configure

$ make

$ sudo make install --> 설치할때 /usr/local 등의 디렉토리를 접근하기 위해서 sudo를 줘서 install 한다.

$ sudo ln -s /usr/local/bin/node /usr/bin/node --> 혹시나 패스가 안걸려있으면 심볼릭 링크도 추가해주면 편하다.



설치가 잘된나?? 버전한번 확인해보면..

$ node --version 

v0.10.9



설치를 했으니 모든 언어의 첫 시작관문인 Hello World를  한번 찍어보면~~~


helloworld.js를 아래와 같이 만들고 나서...

var http = require('http'); 

http.createServer(function (request,response){

        response.writeHead(200,{'Content-Type': 'text/plain'});

        response.end('Hello World. from Node.js\n');

}).listen(9999,"0.0.0.0");

console.log('Server Started');



node로 실행 시킨다.


 $ node helloworld.js


웹브라우저에서 한번 접속을 해보면!!




눈물이 또르르르...이제 옛날 처럼 힘들게 뭔가 만들필요가 없어진것 같은 ... 느낌이 확 다가온다.


블로그 이미지

rekun,ekun 커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

Node.js

코딩하고/Node.js 2012.12.12 23:42

요즘 가만히 앉아서 개발하고 있노라면.. 이대로 개발자의 삶을 살아도 괜찮은것인가 하는 의문이 들곤한다..


왜냐면, 나도 모르는사이에 뭔가 새로운게 계속 생겨나고... 개발자들은 이런 새로생겨나는 것들을 계속 공부해야 하는 요구사항에 직면하게 된다..


어우... Node.js는 뭔가 하고 좀 찾아봤는데...


이거도 공부해둬야 될것 같다..


네트워크 프로그래밍 자체가 웹기반으로 다 올라갈때 쯤이면 자바니 cpp이니 하는 어플보다는 웹어플이 더 주류가 될것 같은데..


공부해야 할게 너무 많다 ㅠ.ㅠ


http://nodejs.org/

https://github.com/zzoon/nodetube




블로그 이미지

rekun,ekun 커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?