본문 바로가기

과거공부모음

나의 개발일지 20220109 TIL(Today I learned) - Websocket, socket.io

Today I learned

오늘은 Websocket과 socket.io에 대해서 학습을 진행했다 학습을 진행을 하면서 polling, long polling, websocket, server sent event, webrtc등 실시간 통신에 대해서 알게 되었다 그 중 양방향 통신이 필요하고 socket 통신을 위한 전용 서버를 구축할 환경이 되는 곳에 오늘 배운 websocket을 사용한다

 

socket.io는 websocket을 기반으로 클라이언트와 서버의 양방향 통신을 가능하게 해주는 모듈이다

websocket을 사용해도 좋다 하지만 socket.io는 websocket보다 편의성이 좋아 개발하는 입장에서 사용하기 편하다

그리고 websocket을 지원하지 않은 곳에서 polling을 이용해 websocket처럼 사용할 수 있게 해준다

 

websocket보다 socket.io가 편한 점을 알아보자

websocket은 클라이언트에서 발생하는 이벤트를 비교해서 나눠야한다

switch (type) {
    case "create":
        //create(params);
        create.create(params,rooms, ws, db);
        break;
    case "join":
        join(params);
        break;
    case "leave":
        leave(params);
        break;    
    default:
        console.warn(`Type: ${type} unknown`);
        break;
    }

socket.io는 클라이언트에서 발생하는 이벤트를 개발자가 임의로 설정할 수 있다

socket.on('받을 이벤트 명', (msg) => {
})
 
socket.emit('전송할 이벤트 명', msg)

socket.io를 사용하는 쪽이 코드가 더 간결하고 직관적인거 같다

 

오늘은 websocket과 socket.io를 학습해 봤다 프로젝트에 적용시켜보고 싶다