1. 화이트보드 생성
- UUID, 프로필 정보(닉네임, 프로필 아이콘)를 가지고 Whiteboard 생성
- 화이트보드를 생성한 유저의 프로필 정보(닉네임, 프로필 아이콘)를 discoryInfo에 담아 Advertising 시작
2. 화이트보드 탐색
- 화이트보드 리스트 화면 진입 시 화이트보드 Browsing 시작
- 새로고침을 통해 검색 리프레쉬 가능
- 탐색된 화이트보드 정보를 갱신하기 위한 탐색 로직
3. 화이트보드 참여
- 검색된 화이트보드 중 원하는 화이트보드 선택 및 참여
- 참여 요청
- 요청을 보내는 유저의 프로필 정보(프로필 아이콘)를 포함하여 화이트보드 호스트에게 요청 전송
- 참여 요청 처리
- 요청을 보낸 유저의 프로필 정보(프로필 아이콘)를 저장
- 요청을 보낸 유저와 connected 상태가 되면
- a. 단계에서 저장한 정보를 포함하여 discoveryInfo 업데이트
- Advertising 중단 후 업데이트된 discoveryInfo를 가지고 Adversiting 재개
- 참여요청을 보낸 유저는 Browsing을 중지
- 연결 상태 처리
- 화이트보드에 Join 요청을 보냄
WhiteboardUseCase
는 Join
요청을 보내고 3초간 응답을 대기
WhiteboardRepository
는 NearbyNetwork
로부터 연결 성공 여부를 전달받으며, 성공 시 이벤트 방출
WhiteboardUseCase
는 WhiteboardRepository
의 응답을 받으면 응답의 결과를 방출
WhiteboardListViewModel
은 WhiteboardUseCase
의 응답을 받아 성공/실패에 따른 UI 업데이트
- 연결 성공
WhiteboardUseCase
가 요청 이후 3초 이내에 연결 성공 응답을 받은 경우
- 연결 실패
WhiteboardUseCase
가 요청 이후 3초간 아무 응답도 받지 못한 경우
화이트보드 생성 및 참여 데이터 흐름
