국비지원 공부 정리/네트워크 공통

Socket.io의 기본적 사용법

worldstroy 2025. 3. 29. 13:40

Socket.io

• 클라이언트와 서버 간의 짧은 지연 시간, 양방향 및 이벤트 기반 통신을 실시간 으로 가능하게 하는 라이브러리
• WebSocket 프로토콜 위에서 구축되었으며 통신 과정을 단순화하고 개선하 기 위한 추가 기능을 제공
• 이벤트 기반이며, 연결이 끊어질 시 자동으로 재연결 시도를 한다는 특징이 있다.

 

Socket.io의 기본적인 이벤트

이벤트명 의미
connection • 클라이언트가 서버에 연결되었을 때 발생.
• 클라이언트와의 상호작용을 초기화하거나 초기 데이터를 전달할 수 있 음
disconnect 클라이언트가 연결을 해제했을 때 발생
disconnecting 클라이언트가 연결을 해제하려는 경우에 함수를 실행하고 싶다면 발생
error 연결 중에 오류가 발생했을 때 발생

 

사용자 지정 이벤트

룸 관련 함수

 

socket.join("roomA");  
// 'roomA' 방에 참여
socket.leave("roomA");  
// 'roomA' 방에서 나가기
io.to("roomA").emit("message", "Hello Room A!");  
// 'roomA' 방에 있는 모든 클라이언트에게 'Hello Room A!' 메시지 전송
socket.to("roomA").emit("message", "Hello Room A!");  
// 'roomA' 방에 있는 다른 클라이언트들에게 'Hello Room A!' 메시지 전송
socket.broadcast.to("roomA").emit("message", "A new user has joined the room.");  
// 'roomA' 방에 새로운 사용자가 들어왔다는 메시지를 방에 있는 다른 사용자들에게 전송
socket.broadcast.emit("message", "A new user has joined the room");  
// 모든 클라이언트에게 '새로운 사용자가 들어왔습니다'라는 메시지 전송
io.socket.emit("message", "Hello, Room A!");  
// 모든 클라이언트에게 'Hello, Room A!' 메시지 전송
const roomInfo = io.sockets.adapter.rooms.get(room);  
// 'room'에 대한 정보를 가져옴
console.log(roomInfo);  
// 'room'에 대한 정보를 콘솔에 출력

 

 

Socket.io를 실제로 사용하는 방법

 

1. socket.io를 사용하기 위한 모듈 패키지를 설치한다.
npm install socket.io
2. Socket.io를 프론트 단의 js에서 불러온다.

3. 클라이언트 소캣을 스크립트 단에서 생성한다.
const socket = io();
io() 함수는 클라이언트 소켓을 생성하고, 서버와의 연결을 설정
4.  불러온 io로 서버로 전송할 메세지와 재전송을 받을 메세지를 설정한다.

주로, 버튼 클릭 시 함수를 실행하고, 함수 안에서 해당 메세지를 서버로 보내는 식
5. 해당 메세지를 받고 프론트엔드로 메세지를 다시 전달할 io를 백엔드 단에 설정한다.

'국비지원 공부 정리 > 네트워크 공통' 카테고리의 다른 글

TCP/IP 와 WebSoket  (0) 2025.03.29
데이터 암호화란?  (0) 2025.03.29
서버구축  (0) 2025.03.28
환경변수?  (0) 2025.03.28
Cookie, Session  (0) 2025.03.27