본문 바로가기

node.js

Node.js Socket통신 Socket.IO 사용

Socket 통신이란?

서버와 클라이언트 양방향 연결이 이루어지는 통신으로, 클라이언트도 서버로 요청을 보낼 수 있고 서버도 클라이언트로 요청을 보낼 수 있는 통신으로 다음과 같은 특성을 가진다. 클라이언트와 서버 양쪽에서 서로에게 데이터 전달을 하는 방식의 양방향 통신이다.

기본적으로 양방향 통신이기 때문에 서버에서 실시간으로 값을 경신해야 하는 경우 자주 쓰이는 통신이다. 

ex) 주식 가격,코인 가격 

 

Node.js에서도 Socket.IO라는 npm 모듈로 간단하게 사용할 수 있습니다.

 

Socket.IO 모듈 설치

 

터미널 창에서 npm install socket.io를 입력해 모듈을 설치합니다

설치가 완료되면 서버 측 코드를 작성합니다.

Express 모듈을 사용하여 서버를 실행합니다.

“const io = require(‘socket.io’)(http, {cors: { origin:”*”}}); “//웹 소켓을 사용하는 코드입니다.

“(http, {})” // 안에 여러 설정들을 할 수 있는데 현재 cors에 대해 모두 허용하는 코드만 작성되었습니다.

 

Socket 통신은 기본적으로 

Socket.emit('소켓명', '보낼 데이터')로 데이터를 보내면 

Socket.on('소켓명', function(data)//보낸 데이터) 형식으로 받는 단순한 구조입니다.

 

아래 화면은 서버 쪽 코드

서버-----------------------------------------> 클라이언트

       msg소켓명 (연결되었습니다) 전송

클라이언트 msg 정보를 보내면 서버-----------------------------------------> 클라이언트

                                                      msg소켓명 (받았습니다) 전송하는 구조입니다.

다음은 클라이언트 쪽 코드

먼저 사용한 html 파일에 <script src =”/socket.io/socket.io.js”></script>” 태그를 추가해줍니다.

다음으로 socket 변수에 hostname을 입력해서 소켓통신을 할 수 있게 연결해줍니다.

서버에서 msg정보를 보내면 console로 출력하는 구조입니다.

여기까지 하시면 기본 설정은 끝입니다.

 

이렇게 Socket.IO로 간단한 소켓통신을 해보았습니다.