socket.io
Socket.IO 라이브러리
Section titled “Socket.IO 라이브러리”실시간 양방향 통신을 쉽게 구현하기 위한 JavaScript 라이브러리이다.
웹 소켓(WebSocket)을 기반으로 동작한다.
Socket.IO는 먼저 웹 소켓을 사용하여 서버와 클라이언트 간의 실시간 통신을 구현한다.
웹 소켓은 TCP 소켓을 기반으로 하며, 양방향으로 데이터를 주고받을 수 있다.
폴링(Polling) 및 대체 수단
Section titled “폴링(Polling) 및 대체 수단”Socket.IO는 웹 소켓을 지원하지 않는 환경에 대해 폴링을 대체 수단으로 활용한다.
이를 통해 클라이언트와 서버 간 통신 환경에 따라 최적의 통신 방식을 자동으로 선택하여 사용한다.
이벤트 기반 통신
Section titled “이벤트 기반 통신”Socket.IO는 이벤트 기반 아키텍처를 사용한다.
클라이언트나 서버에서 발생하는 이벤트에 대한 리스너를 설정하고,
세부 동작을 콜백 함수에 정의한다.
실시간 양방향 통신
Section titled “실시간 양방향 통신”클라이언트와 서버는 양방향으로 데이터를 주고받을 수 있다.
클라이언트가 서버로 데이터를 보내면,
서버는 해당 이벤트를 처리한 뒤 다른 클라이언트들에게 해당 정보를 브로드캐스트할 수 있다.
룸(Room) 기능
Section titled “룸(Room) 기능”Socket.IO는 룸(Room)이라는 개념을 제공한다.
특정 그룹에 속한 클라이언트끼리만 데이터를 주고받을 수 있도록 지원하며,
채팅방이나 특정 그룹 사용자 대상 메시지 전송에 활용할 수 있다.