2024.01.31 TIL

복치·2024년 1월 31일
  1. socket io 공부

Socket IO 이벤트 통신
소켓IO 의 메소드의 특징은 클라이언트에서 발생하는 이벤트는 개발자가 임의로 설정할 수 있다는 점이다.
이벤트는 문자열로 지정하며 직접 이벤트를 발생시킬 수 있다. 전반적으로 노드 이벤트 핸들러 방식Visit Website을 따르고 있다고 보면 된다.
javascript// 해당 이벤트를 받고 콜백함수를 실행
socket.on('받을 이벤트 명', (msg) => {
})

// 이벤트 명을 지정하고 메세지를 보낸다.
socket.emit('전송할 이벤트 명', msg)

이런식으로 메세지 마다 고유한 이벤트를 등록해 구별해서 송수신하면,
채팅방에서 '귓속말' 기능처럼 특정 어느 사람한테만 메세지를 송신한다던지 ..등 다양한 통신 기능을 구현할 수 있다.

Socket IO 송수신 메소드

소켓 메세지 수신
javascript// 접속된 모든 클라이언트에게 메시지를 전송한다
io.emit('event_name', msg);

// 메시지를 전송한 클라이언트에게만 메시지를 전송한다
socket.emit('event_name', msg);

// 메시지를 전송한 클라이언트를 제외한 모든 클라이언트에게 메시지를 전송한다
socket.broadcast.emit('event_name', msg);

// 특정 클라이언트에게만 메시지를 전송한다
io.to(id).emit('event_name', data);

소켓 메세지 송신
javascript// 클라이언트와 소켓IO 연결됬는지 안됬는지 이벤트 실행. (채팅방에 누가 입장하였습니다/퇴장하였습니다 )
io.on('connection/disconnection', (socket) => {
});

// 클라이언트에서 지정한 이벤트가 emit되면 수신 발생
socket.on('event_name', (data) => {
});

Socket.IO 통신 구현해보기

소켓 서버 설정

1) app서버 생성
javascriptconst app = require("express")();
const server = app.listen(8005, ()=>{ });

2) 소켓IO에 서버 정보 넘겨주고 구동
javascriptconst SocketIO = require('socket.io');

// 서버 연결, path는 프론트와 일치시켜준다.

profile
돌연사 하기전에 하고야 만다

0개의 댓글