어떤 라이브러리 사용할 것인가?
채팅 상세 스펙
- 메세지 전송
- socket path
- namespace /chat → room1,room2,room3… : 방 생성시 새로운 room id 생성
- 채팅방 경로 /chat/방아이디 ?
- 세션 스토리지를 통해 마지막으로 접속한 채팅방의 정보를 들고 refresh 되더라도 유지할 수 있도록
- 보낸 사람이 누군지 → 작성자 + 메세지
-
클라이언트가 메세지 + 작성자를 보냄
→ 클라이언트가 작성자 이름 변조하면?
-
소켓 연결시 서버에 사용자 정보 저장(선택)
- 메세지 전달할 때 줄바꿈 어떻게 처리 ?
채팅방 기본 기능
- 채팅
- 카톡처럼 자기 채팅은 오른쪽, 팀 채팅은 왼쪽
- 채팅 상세화
- text의 최대 크기는 varchar
- 채팅 타입
- 메세지
이미지
- 방정보 갱신(방 정보 변경) → 위쪽?
- 테마 시간표 갱신 → 오른쪽
- 사용자 들어옴 —— 000 님이 들어오셨습니다. ——
- 사용자 나감 —— 000 님이 나가셨습니다. ——
- 강퇴(당함) → 프론트에 보여주기 위한 용도 —— 000 님이 강퇴당하셨습니다. ——
- 채팅 로그 : 전부 보관
- 무한 스크롤
- 역방향 → 한 번에 채팅 데이터 50개 가져옴
- 정방향(날짜 이동 생기면 추후 사용)
- 프로필 및 시각 표시
- 프로필 사진은 같은 시각에 보낸 첫 메세지에 삽입
- 시각은 같은 시각에 보낸 가장 마지막 메세지에 삽입
- 내가 보낸 메세지와 팀이 보낸 메세지 별도로 표시
- 사용자 들어옴, 나감, 강퇴는 중앙(채팅방의 채팅)에 표시
- 방정보 갱신, 테마 시간표 갱신시 해당 컴포넌트에 최종 수정 시각 작성