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
반응형
'프로젝트 > SSR 게시판' 카테고리의 다른 글
[프로젝트] 게시판 | 트러블슈팅-Argument passed in must be a string of 12 bytes of 24 hex characters or an integer (1) | 2024.01.06 |
---|---|
[프로젝트] 게시판 | 5. 글 작성자만 수정, 삭제 버튼 보이게 만드는 법 (0) | 2024.01.06 |
[프로젝트] 게시판 | 4. 채팅 유저의 프로필 이미지 보여주기 & 프로필이 상대방 것인지 여부 체크하는 법 (1) | 2024.01.06 |
[프로젝트] 게시판 | 3. 채팅 목록 최신순 정렬하는 법 (2) | 2024.01.06 |
[프로젝트] 게시판 | 2. 가장 마지막에 한 채팅 보여주는 법(feat. 생성된 채팅이 없으면 채팅방 자체 생성시간 불러오기) (0) | 2024.01.06 |