- NestJS가 익숙지 않다보니 간단한 프로젝트를 진행해보면서 전체적인 구조나 개발 방식에 대해 학습하려 합니다.
- 우선 간단하게 실시간 채팅을 구현할 수 있는 애플리케이션을 생성해볼 예정입니다.
NestJS 프로젝트 초기화
# NestJS 프로젝트 초기화
> npx nest new simple-chat
관련 의존성 패키지 설치
# socket.io 의존성 설치
> npm install @nestjs/platform-socket.io @nestjs/websockets socket.io
게이트웨이 생성
# 게이트웨이 생성
> npx nest g ga chat
구조
- 클라이언트에서
socket.emit('chatMessage', { message, room })
를 호출하면, 서버에서는 handleChatMessage 메서드가 호출되고, 해당하는 방의 다른 사용자에게 이 메시지를 전달합니다.
socket.emit('chatMessage', { message, room });
@SubscribeMessage('chatMessage')
handleChatMessage(
client: Socket,
data: { message: string; room: string },
): void {
this.server.to(data.room).emit('chatMessage', {
userId: this.clientNickName.get(client.id),
message: data.message,
room: data.room,
});
}
실행
# 실시간 채팅 어플리케이션 실행
> npm run start:dev

소스코드
Reference
https://kigo23.tistory.com/23