NestJS 프로젝트 - 간단한 채팅 애플리케이션

누군가·2024년 3월 13일
0
  • NestJS가 익숙지 않다보니 간단한 프로젝트를 진행해보면서 전체적인 구조나 개발 방식에 대해 학습하려 합니다.
  • 우선 간단하게 실시간 채팅을 구현할 수 있는 애플리케이션을 생성해볼 예정입니다.

NestJS 프로젝트 초기화

# NestJS 프로젝트 초기화
> npx nest new simple-chat

관련 의존성 패키지 설치

  • 실시간 통신을 위해 socket.io 패키지를 설치합니다.
# socket.io 의존성 설치
> npm install @nestjs/platform-socket.io @nestjs/websockets socket.io

게이트웨이 생성

  • chat.gateway.ts를 생성합니다.
# 게이트웨이 생성
> 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

소스코드

  • 소스코드는 아래 레파지토리에서 확인할 수 있습니다.
    [Github] chat-app

Reference

https://kigo23.tistory.com/23

profile
개발 중에 알게된 내용을 공유합니다 (나도 기억할겸)

0개의 댓글