1. WebSocket 기본 개념
- HTTP와 달리 양방향 통신이 가능한 프로토콜임을 배웠다
- Socket.io 라이브러리를 사용하여 쉽게 구현할 수 있다는 것을 알게 되었다
2. 서버 설정
const io = new Server(httpServer, {
cors: {
origin: "*" // CORS 설정으로 모든 도메인에서의 접근을 허용했다
}
});
- express 서버와 socket.io를 연동하는 방법을 학습했다
- CORS 설정이 필요하다는 것을 알게 되었다
3. 이벤트 처리
io.on('connection', (socket) => {
// 연결 이벤트
socket.on('chat message', (msg) => {
// 메시지 수신 이벤트
});
socket.on('disconnect', () => {
// 연결 종료 이벤트
});
});
- 소켓 연결, 메시지 수신, 연결 종료와 같은 주요 이벤트들을 처리하는 방법을 배웠다
- 각 클라이언트마다 고유한 socket.id가 부여된다는 것을 알게 되었다
4. 메시지 브로드캐스팅
io.emit('chat message', {
id: socket.id,
message: msg
});
- io.emit()을 사용하여 연결된 모든 클라이언트에게 메시지를 전송할 수 있다는 것을 학습했다
- 메시지에 발신자의 ID를 포함시켜 누가 보냈는지 구분할 수 있게 되었다
5. 정적 파일 제공
app.use(express.static('.'));
- express의 static 미들웨어를 사용하여 정적 파일을 제공하는 방법을 배웠다
이러한 WebSocket 학습을 통해 실시간 양방향 통신의 기본 개념과 구현 방법을 이해하게 되었다.