그냥 개발자 블로그

[nodejs] node.js로 소켓 통신 서버 만들기 본문

프로그래밍팁/node.js

[nodejs] node.js로 소켓 통신 서버 만들기

마음이파파 2015. 10. 8. 21:58

우선 어떤 서버를 만들것인지 설계를 해야겠죠? 내용은 아래와 같아요. ㅋㅋㅋㅋㅋㅋ


php서버에서 소켓서버를 콜하면 소켓서버가 응답하고 php서버 화면에 표시해주는걸 할꺼에요.






일단 소켓통신을 위해 2가지 팩(pack)을 설치 할거에요. 


express 라는것과 socket.io 라는거에요. 


두가지라 모하는건지는 저보다 node.js에 전문적인 분들이 포스팅 해놓을것을 보시는게 좋을꺼 같아요.












'윈도우+R' 키를 통해서 명령창에서 커맨드창 을 실행해주시고 node.js 가 설치 되어 있는 디렉토리로 이동해주세요.


저의 경우는 D드라이버 안에 nodejs 디렉토리로 이동!















'npm install express' 라고 적어주시면 약간의 로딩후 자동으로 설치 되요.












이어서 'npm install socket.io' 라고 쓰셔서 socket.io 팩을 설치 해주시구요.












express와 socket.io가 정상적으로 설치 되었다면 node_modules 폴더 내에 디렉토리들이 위 그림처럼 생성되었을 꺼에요.












이제 본격적으로 node.js 소켓통신을 위한 부분을 만들건데요. 그전에 앞서 저의 경우 프로젝트 관리를 쉽게 하기 위해 js라고 디렉토리를 별도로 만들어 주었어요.












위와 같이 코드를 작성하여 socket.js 라는 파일을 하나 만들어 js 디렉토리 안에 저장해 주었어요.


포트는 3303으로 설정 해주었고요.


call 이라는 명령이 들어오면 콘솔창에 받은 데이터를 표시하고 명령이 들어온곳에 거꾸로 answer라는 명령을 보내는거에요.












php서버(클라이언트) 부분에는 다음과 같이 코딩해서 nodejs_test.php 라고 저장했어요.


socket.io는 별도로 서버내에 설치해도 되지만 간단히 cdn을 이용하였구요.


저는 소켓서버가 로컬에서 있어서 주소를 위와 같이 지정해주었는데 외부로 연결한다면 해당하는 주소를 적어주시고 아까 설정한 포트번호를 잊지말고 적어주세요.


call 이라는 명령을 소켓서버에 보내고 answer 라는 명령이 있으면 데이터를 화면에 출력하도록 하였어요.













이제 소켓서버를 실행할 차례인데요.


커맨드 창에서 위에서 저장한 socket.js을 node 명령어로 실행해주세요. 


저와 똑같이 코드를 작성했을시 정상적으로 실행되면 socket server run!! 이라는 메시지가 뜰꺼에요.


hi nodejs! 라는 메시지는 아래 nodejs_test.php 파일이 열리면 자동으로 나오게 되요.












 


이어서 nodejs_test.php 페이지를 열면 자동으로 node.js로 만들어진 소켓서버에 call 명령을 보내게 되고 anwer 라는 메시지를 받아서 보여주게될거에요.


커맨드 창에는 hi nodejs! 라고 표시되네요.


테스트 완료후 socket.js를 종료하고 싶다면 커맨드에서 '컨트롤+C' 키를 눌러주시면 종료되요.










어렵게만 여겨지던 웹채팅 프로그램을 node.js를 활용하면 간단히 만들수도 있겠어요.