Skip to content

socket.io

실시간 양방향 통신을 쉽게 구현하기 위한 JavaScript 라이브러리이다.
웹 소켓(WebSocket)을 기반으로 동작한다.

Socket.IO는 먼저 웹 소켓을 사용하여 서버와 클라이언트 간의 실시간 통신을 구현한다.
웹 소켓은 TCP 소켓을 기반으로 하며, 양방향으로 데이터를 주고받을 수 있다.


Socket.IO는 웹 소켓을 지원하지 않는 환경에 대해 폴링을 대체 수단으로 활용한다.
이를 통해 클라이언트와 서버 간 통신 환경에 따라 최적의 통신 방식을 자동으로 선택하여 사용한다.


Socket.IO는 이벤트 기반 아키텍처를 사용한다.

클라이언트나 서버에서 발생하는 이벤트에 대한 리스너를 설정하고,
세부 동작을 콜백 함수에 정의한다.


클라이언트와 서버는 양방향으로 데이터를 주고받을 수 있다.

클라이언트가 서버로 데이터를 보내면,
서버는 해당 이벤트를 처리한 뒤 다른 클라이언트들에게 해당 정보를 브로드캐스트할 수 있다.


Socket.IO는 룸(Room)이라는 개념을 제공한다.

특정 그룹에 속한 클라이언트끼리만 데이터를 주고받을 수 있도록 지원하며,
채팅방이나 특정 그룹 사용자 대상 메시지 전송에 활용할 수 있다.