5주차

5주차 기능 추가 및 수정 사항

v-talk : https://v-chat-ade97.web.app/

5주차 평가 목록

  • 테이블 구조 정의(참조)
  • 회원 가입 창 별도 구현
  • 메인 화면 구성(사이트 안내문) 구현
  • 현재 offer, answer, ice후보 전부 push만 하고 있어서 db에 쌓이고 있기 때문에 처리 후 삭제되도록 구현
  • 페이지를 새로고침하면 위의 연결 정보가 유실되는 문제 해결

테이블 구조 정의

Cloud Firestore 구조 (DB구조)

1. Users (회원가입 , 로그인)

필드명자료형설명
emailSTRING사용자 이메일 (고유)
displayNameSTRING닉네임 / 표시 이름
createdAtTIMESTAMP가입 일시

2. userEvents (일정)

필드명자료형설명
textSTRING일정 내용
dateSTRING일정 날짜 (YYYY-MM-DD)
createAtTIMESTAMP일정 생성 시각
sharedWithARRAY공유 대상 닉네임 목록 (선택)

3. Messages (채팅)

필드명자료형설명
userSTRING작성자 닉네임
textSTRING메세지 내용
timestampNUMBER전송 시각(밀리초 단위)

4. voiceChatUsers (음성채팅 참여자)

필드명자료형설명
[user_id]BOOLEANtrue일 경우에 참여 중

5. voiceChatOffers(WebRTC 시그널링)

필드명자료형설명
typeSRTINGoffer 또는 answer
sdpSTRING세션 설명
senderSTRINGoffer 또는 answer을
보낸 사용자 UID
receiverSTRING수신자 UID

6. voiceChatCandidates (webRTC ICE 후보 정보)

필드명자료형설명
candidateSTRINGICE 후보 문자열
sdpMid STRINGSDP 미디어 ID
sdpMLineIndexNUMBERSDP 미디어 라인 인덱스
senderSTRING전송자 UID
receiver STRING 수신자 UID

회원 가입 창 별도 구현

  • 기존의 로그인과 회원가입의 통합 시스템이 혼란이 발생할 수 있어 로그인과 회원가입을 따로 진행하게끔 만들었습니다.
  • 예시) 테스트2 계정으로 회원가입 시,
    “테스트2님, 회원가입이 완료되었습니다!” 팝업과 함께 자동 로그인

메인 화면 구성(사이트 안내문) 구현

화면을 줄였을 때 폰트 크기 변경

채팅 스크롤이 올라가있을때 새 메세지가 오면 알림 오도록 구현

현재 채팅보고 있을때는 새 채팅 올라왔을때 자동으로 스크롤 내려감

페이지를 새로고침하면 위의 연결 정보가 유실되는 문제 해결

페이지 닫기나 새로고침시 연결정보들 삭제할수 있도록 함 (재연결시 충돌 방지)

밑의 코드 참조

offer, answer, ice후보 전부 push만 하고 있어서 db에 쌓이고 있기 때문에 처리 후 삭제되도록 구현

다음주 계획

  • 채팅에 링크를 올릴 경우, 링크를 감지, 링크에 클릭 이벤트 추가와 클릭 시 확인 모달 또는 팝업 표시 구현
  • 회원가입 창을 별도 구현하니 닉네임 중복이 허용되는 문제가 발생하여 기존에 있던 회원가입과 로그인 통합시스템을 쓸 것 입니다.
  • 현재 채팅방을 로그인후의 메인페이지(index.html)에 통합

Be the first to comment

Leave a Reply

Your email address will not be published.


*