프로젝트/SSR 게시판

[프로젝트] 게시판 | 1. 채팅룸 생성여부에 따른 유저 이동 예외 처리 하는 법

paintover23 2024. 1. 6. 17:49
728x90

 

 

 

 

 

채팅 서버의 예외처리 하는 로직

채팅방 생성 및 유저 접근과 관련한 다양한 예외처리 로직을 구현하고자 한다. 다음은 생각할 수 있는 아이디어 몇 가지이다:

 

1. 신규 채팅방을 생성하고 해당 채팅방에 접근할 때는 또 다른 채팅방을 만드는 것이 아니라 기존 채팅룸으로 유저를 안내한다.

2. 글 작성자 본인과는 채팅할 수 없다. 

 

사고과정

사전에 유저가(detail.ejs) 보내줘야 하는 정보
- writerId, chatName(게시글 이름), postId
- 주의할 점은 a 링크 안에 공백 또는 줄바꿈이 없어야 한다.

 

0. postId 와 채팅방의 멤버를 근거로(조건을 모두 충족하는 것은 하나밖에 없음) 이미 생성된 채팅방이 있는지 DB에서 찾아본다.
1. 만약 이미 생성된 채팅방이 있다면, 해당 채팅룸으로 유저를 이동시킨다.
2. 1번이 없다면, 신규 chat/request로 요청시에 채팅방을 생성한다.

- 2-1. 생성하는 대신, 글 작성자 본인과는 채팅을 막는다.
3. 채팅룸 생성시에 해당 글의 postId도 같이 DB에 저장한다.
4. 2번이 완료되면 해당 채팅룸이 포함된 목록으로 유저를 이동시킨다. 
5. WriterID, loginUserId는 모든 로직 공통으로 사용하는 요소라서 스코프 밖으로 빼준다.
6. 다시 0번, 1번이 반복됨..

 

작성코드

 

 

 

 

 

 

728x90
반응형