어떤 라이브러리 사용할 것인가?

채팅 상세 스펙

  1. 메세지 전송
  2. socket path
  3. namespace /chat → room1,room2,room3… : 방 생성시 새로운 room id 생성
  4. 채팅방 경로 /chat/방아이디 ?
  5. 세션 스토리지를 통해 마지막으로 접속한 채팅방의 정보를 들고 refresh 되더라도 유지할 수 있도록
  6. 보낸 사람이 누군지 → 작성자 + 메세지
    1. 클라이언트가 메세지 + 작성자를 보냄

      → 클라이언트가 작성자 이름 변조하면?

    2. 소켓 연결시 서버에 사용자 정보 저장(선택)

  7. 메세지 전달할 때 줄바꿈 어떻게 처리 ?

채팅방 기본 기능

  1. 채팅
    1. 카톡처럼 자기 채팅은 오른쪽, 팀 채팅은 왼쪽
  2. 채팅 상세화
    1. text의 최대 크기는 varchar
    2. 채팅 타입
      1. 메세지
      2. 이미지
      3. 방정보 갱신(방 정보 변경) → 위쪽?
      4. 테마 시간표 갱신 → 오른쪽
      5. 사용자 들어옴 —— 000 님이 들어오셨습니다. ——
      6. 사용자 나감 —— 000 님이 나가셨습니다. ——
      7. 강퇴(당함) → 프론트에 보여주기 위한 용도 —— 000 님이 강퇴당하셨습니다. ——
  3. 채팅 로그 : 전부 보관
  4. 무한 스크롤
    1. 역방향 → 한 번에 채팅 데이터 50개 가져옴
    2. 정방향(날짜 이동 생기면 추후 사용)
  5. 프로필 및 시각 표시
    1. 프로필 사진은 같은 시각에 보낸 첫 메세지에 삽입
    2. 시각은 같은 시각에 보낸 가장 마지막 메세지에 삽입
    3. 내가 보낸 메세지와 팀이 보낸 메세지 별도로 표시
    4. 사용자 들어옴, 나감, 강퇴는 중앙(채팅방의 채팅)에 표시
    5. 방정보 갱신, 테마 시간표 갱신시 해당 컴포넌트에 최종 수정 시각 작성