우여곡절 끝에 connectionId를 기반으로 mindmapId를 불러오는 api를 만들게 되었고…
연결을 하고 있었음
socket.on("notFoundError", async () => {
try {
const response = await getMindMapByConnectionId(connectionId);
if (response) get().connectSocket(connectionId);
return;
} catch (error) {
if (error.status === 404) set({ connectionStatus: "notFound" });
if (error.status === 403) set({ connectionStatus: "forbidden" });
}
});
사실 해당 기능에 대한 구현은 ‘회원이 만든 마인드맵이 하루가 지나 redis에서 내려갔을 때, 초대 링크를 받은 사람도 재접을 할 수 있게 해야 하는 거 아닐까?’라는 논의에서 출발한 거임
그리고 고민 및 회의 끝에 이런 구현 방향성이 결정이 된 거고… (그건 회의록 참고)
결정된 방향성은 여기
notFoundError가 뜨면
get mindmap id를 해
→ 마인드맵 존재 O
→ get connection 하겠지 → 그러면 서버에서 회원검증에서 막힘 HTTP UnAuthorized 403 (권한 없음 페이지)
→ 마인드맵 존재 X
→ HTTP NotFound 404 (404 페이지)
→ 게스트가 만든 마인드맵이거나 url이 잘못됨
그래서 이걸 테스트 해 볼 수 있는 방법은
1 하루를 기다린다
2 레디스에서 임의로 connectionId를 삭제한 다음 새로고침을 해 본다