-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 💄 #194 - style 수정 * ✨ #194 - audio 태그 추가 및 사용자 오디오 데이터 조회 및 주입 로직 추가 * ➕ #194 - socket.io-client 패키지 설치 * ✨ #194 - 사용자 인증 정보를 조회하는 훅 개발 및 적용 * 🏷️ #194 - next auth의 session 타입 수정 - accessToken -> expires * 🩹 #194 - 사용자 정보 조회 hook에서 useEffect 의존성 배열 수정 - session -> session.status * ✨ #194 - 매칭 소켓 연결 로직 추가 * ✨ #194 - 매칭 성공 이벤트 추가 및 playing 페이지로 redirection * 🚚 #194 - matching socket provider 이름변경 - matchingSocketProvider -> matchingRTCProvider * ✨ #194 - webRTC을 활용한 랜덤 매칭 기능 개발 * ♻️ #194 - 랜덤 매칭 기능 리펙토링 - socket, peerConnection 로직 분리 * 🐛 #194 - 오디오 권한을 처음 설정하는 유저의 경우 오디오 스트림이 전달되지 않는 버그 해결 * ♻️ #194 - event 초기화 로직 추가 * 🚚 #194 - matching 관련 클래스명 변경 - matchingRTC -> randomMatching * ✨ #194 - 매칭이 실패되는 경우 예외처리 * 🧑💻 #194 - startSignaling 개발자 예외처리 로직 추가 * ♻️ #194 - 페이지 리다이렉션 주소 상수 변경 * 🧑💻 #194 - 매칭 관련 상수 정리 * 🔥 #194 - 불필요한 console.log 제거 * 🩹 #194 - matching playing 매칭 유저 정보 적용 * ♻️ #194 - 소켓 IP, stun 서버 ip 목록 환경 변수 처리 * ♻️ #194 - inline 함수 분리 및 PATH_PATH 상수 처리 * ✏️ #194 - 매칭 관련 소켓 이벤트 명 수정 * 🚚 #194 - 인증 관련 hook 이름 변경 * ♻️ #194 - 인증 관련 hook session의 모든 케이스 처리 구문 추가 * 🏷️ #194 - matching 관련 정보 타입 key 값 수정 * 🏷️ #194 - next auth session 타입 확장 적용 * ✏️ #194 - userInformation 변수명 변경 - userInformation -> user * ♻️ #194 - Microphone 관련 변수명 및 반환 조건 변경 - audioPermission -> MicrophonePermission * 🐛 #194 - 매칭 성공 시 사용자의 소켓, 유저 아이디가 넘어오지 않는 경우 예외 처리 * ♻️ #194 - 소켓으로 받은 데이터 구조 변경 * ✏️ #194 - random matching 관련 메소드명 변경 - startMatching -> joinQueue - startSignaling -> signaling * ✏️ #194 - 매칭 관련 변수명 통일 - RandomMatching -> Matching * ♻️ #194 - matching context 구조 개선 * 🐛 #194 - matching/playing 페이지 접근 시 에러가 발생하는 경우 예외처리 * 🩹 #194 - 매칭 관련 컴포넌트에서 router 이동 시 메소드 변경 - push -> replace * 🚸 #194 - 매칭 페이지에서 페이지 이동 시 매칭 종료 알림창 적용 * 🔥 #194 - useAuthentication 훅으로 대체로 인한 useUser 훅 제거 * 🚚 #194 - 매칭 대기열, 매칭 완료 페이지 이름(route path) 변경
- Loading branch information
Showing
21 changed files
with
517 additions
and
73 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
export * from './socketEvent'; | ||
export * from './message'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
export const EXCEPTION_MESSAGE = { | ||
rejectMicrophone: | ||
'매칭 서비스 이용을 위해 마이크 권한을 설정해주세요.\nChrome 우측 상단 더보기 > 설정 > 개인 정보 및 보안 > 사이트 설정 > 마이크에서 설정할 수 있습니다.\n\n메인 페이지로 이동합니다.', | ||
failedMatching: '랜덤 매칭에 실패하였습니다.\n메인 페이지로 이동합니다.', | ||
} as const; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
export const MATCHING_SOCKET_EVENT = { | ||
client: { | ||
joinQueue: 'joinQueue', | ||
offer: 'offer', | ||
answer: 'answer', | ||
ice: 'ice', | ||
}, | ||
server: { | ||
success: 'success', | ||
offer: 'offer', | ||
answer: 'answer', | ||
ice: 'ice', | ||
}, | ||
} as const; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
import { createContext, useContext, useRef } from 'react'; | ||
import type { ReactNode } from 'react'; | ||
import { Matching } from 'utils'; | ||
|
||
const MatchingContext = createContext<Matching | null>(null); | ||
|
||
interface MatchingProviderProps { | ||
children: ReactNode; | ||
} | ||
|
||
const MatchingProvider = ({ children }: MatchingProviderProps) => { | ||
const { current: matching } = useRef<Matching>(new Matching()); | ||
|
||
return ( | ||
<MatchingContext.Provider value={matching}> | ||
{children} | ||
</MatchingContext.Provider> | ||
); | ||
}; | ||
|
||
export const useMatching = () => { | ||
const context = useContext(MatchingContext); | ||
|
||
if (context === null) { | ||
throw new Error('MatchingContext must be used within a MatchingProvider'); | ||
} | ||
return context; | ||
}; | ||
|
||
export default MatchingProvider; |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
import { useRouter } from 'next/router'; | ||
import { useSession } from 'next-auth/react'; | ||
import { useEffect, useState } from 'react'; | ||
import type { Authentication } from 'types/authentication'; | ||
import { PAGE_PATH } from 'constants/common'; | ||
|
||
export const useAuthentication = () => { | ||
const router = useRouter(); | ||
|
||
const session = useSession({ | ||
required: true, | ||
onUnauthenticated: () => { | ||
void router.replace(PAGE_PATH.account.login); | ||
alert('인증이 필요한 페이지입니다.'); // FIXME: 문구 변경 예정입니다. | ||
}, | ||
}); | ||
|
||
const [authentication, setAuthentication] = useState<Authentication>({ | ||
user: undefined, | ||
status: 'loading', | ||
}); | ||
|
||
useEffect(() => { | ||
if (session.status === 'loading') return; | ||
|
||
setAuthentication({ | ||
update: session.update, | ||
user: session.data.user, | ||
status: 'authenticated', | ||
}); | ||
}, [session.status]); | ||
|
||
return authentication; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.