개요

https://socket.io/how-to/use-with-jwt

공식 문서에 무척 잘 나와있다. 하지만 TypeScript 형식으로 사용하기에 조금 부족한 부분이 있다. 그렇기에 내 프로젝트에 맞게 다시 한번 정리해 보도록 하자.

사용법

미들웨어에서 파싱

현재 프로젝트 Socket 통신부 구조

project-root/
│
├── src/
...
...
...
│   ├── sockets/          // Socket.io 관련 로직
│   │   ├── middlewares/      // Express 미들웨어
│   │   │   └── authMiddleware.ts
│   │   ├── handlers/     // Socket.io 이벤트 핸들러
│   │   │   ├── chatHandlers.ts
│   │   │   └── setupHandlers.ts
│   │   └── index.ts      // Socket.io 초기화
│   ├── index.ts          // 서버 시작점
│   └── app.ts            // Express 앱 설정
...
...

Client에서의 요청 방법

테스트

사용자 ID의 JWT를 임의 생성해서 Front-End의 socket Header로 추가해 준 뒤, 테스트해 보았다.