Skip to content

Commit ee80e43

Browse files
committed
[FE] feat: createAnswer 로직 제거 (#74)
1 parent 3520a4e commit ee80e43

File tree

1 file changed

+16
-65
lines changed
  • src/frontend/src/pages/ChannelPage

1 file changed

+16
-65
lines changed

src/frontend/src/pages/ChannelPage/test.tsx

+16-65
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,13 @@ const VideoTest = () => {
2828
const screenShareRef = useRef<HTMLVideoElement>(null);
2929

3030
const pcRef = useRef<RTCPeerConnection | null>(null);
31-
const wsRef = useRef<WebSocket | null>(null);
3231
const localStreamRef = useRef<MediaStream | null>(null);
3332
const screenStreamRef = useRef<MediaStream | null>(null);
3433
const screenTrackRef = useRef<MediaStreamTrack | null>(null);
3534

3635
const [roomId, setRoomId] = useState('');
3736
const [joined, setJoined] = useState(false);
38-
const [answers, setAnswers] = useState<AnswerMessage[]>([]);
37+
const [answers, setAnswers] = useState<AnswerMessage>();
3938
const [statusMessage, setStatusMessage] = useState('');
4039

4140
const { isSharingScreen, isVideoOn, isMicOn, setIsInVoiceChannel, setIsSharingScreen, setIsVideoOn, setIsMicOn } =
@@ -73,8 +72,8 @@ const VideoTest = () => {
7372
const answerSubscription = client.subscribe(`/topic/answer/${roomId}`, (message) => {
7473
try {
7574
const parsedAnswer: AnswerMessage = JSON.parse(message.body);
76-
setAnswers((prev) => [...prev, parsedAnswer]);
77-
console.log(parsedAnswer);
75+
setAnswers(parsedAnswer);
76+
console.log('answer', parsedAnswer);
7877
} catch (error) {
7978
console.error('[stomp] answer 파싱 오류:', error);
8079
}
@@ -107,10 +106,10 @@ const VideoTest = () => {
107106
console.log('수신된 메시지', message);
108107

109108
if (message.type === 'response' && message.users && message.users.length > 0) {
110-
const user = message.users[0];
109+
const user = message.users.filter((user: any) => user.is_me === false);
111110

112111
console.log('메시지정보', message);
113-
console.log('사용자정보', message.users);
112+
console.log('사용자정보', message.user);
114113

115114
if (user.sdpOffer) {
116115
// 사용자가 sdpOffer를 보냈는지 확인
@@ -119,54 +118,6 @@ const VideoTest = () => {
119118
if (!pcRef.current) {
120119
await createPeerConnection();
121120
}
122-
123-
if (pcRef.current) {
124-
try {
125-
await pcRef.current.setRemoteDescription(
126-
new RTCSessionDescription({
127-
type: 'offer',
128-
sdp: user.sdpOffer,
129-
}),
130-
);
131-
132-
// 이거 type이 response에서 하는게 맞나?
133-
if (pendingCandidates.current.length > 0) {
134-
console.log(`${pendingCandidates.current.length}개의 대기 중인 후보 처리 중`);
135-
136-
for (const candidate of pendingCandidates.current) {
137-
try {
138-
await pcRef.current.addIceCandidate(new RTCIceCandidate(candidate));
139-
console.log('대기 중이던 ICE candidate 추가됨');
140-
} catch (err) {
141-
console.error('대기 중이던 ICE candidate 추가 중 오류:', err);
142-
}
143-
}
144-
pendingCandidates.current = [];
145-
}
146-
147-
// 응답 보내기 -> answer 아닌 것 같아서 확인은 해야함
148-
const answer = await pcRef.current.createAnswer();
149-
await pcRef.current.setLocalDescription(answer);
150-
151-
if (client && token) {
152-
client.publish({
153-
destination: '/answer',
154-
body: JSON.stringify({
155-
type: MessageType.ANSWER,
156-
data: {
157-
roomId,
158-
sdp_answer: answer.sdp,
159-
},
160-
}),
161-
});
162-
}
163-
164-
setStatusMessage('응답을 보냈습니다. 연결 중...');
165-
} catch (err) {
166-
console.error('Offer 처리 중 오류:', err);
167-
setStatusMessage(`Offer 처리 오류: ${err instanceof Error ? err.message : String(err)}`);
168-
}
169-
}
170121
}
171122

172123
// 사용자가 sdpAnswer를 보냈는지 확인
@@ -178,7 +129,7 @@ const VideoTest = () => {
178129
await pcRef.current.setRemoteDescription(
179130
new RTCSessionDescription({
180131
type: 'answer',
181-
sdp: user.sdpAnswer,
132+
sdp: answers?.message,
182133
}),
183134
);
184135
}
@@ -287,7 +238,7 @@ const VideoTest = () => {
287238
body: JSON.stringify({
288239
type: MessageType.OFFER,
289240
data: {
290-
roomId,
241+
room_id: roomId,
291242
sdp_offer: pcRef.current.localDescription.sdp,
292243
},
293244
}),
@@ -311,15 +262,15 @@ const VideoTest = () => {
311262
// onicecandidate 이벤트: 수집된 ICE 후보를 시그널링 서버로 전송
312263
pcRef.current.onicecandidate = (event) => {
313264
if (event.candidate && token && client) {
314-
console.log('[pc] 생성된 ICE Candidate:', event.candidate);
265+
console.log('[pc] 생성된 ICE Candidate:', event.candidate.candidate);
315266

316267
client.publish({
317268
destination: '/candidate',
318269
body: JSON.stringify({
319270
type: MessageType.CANDIDATE,
320271
data: {
321-
roomId,
322-
candidate: event.candidate,
272+
room_id: roomId,
273+
candidate: event.candidate.candidate,
323274
},
324275
}),
325276
});
@@ -517,7 +468,7 @@ const VideoTest = () => {
517468
body: JSON.stringify({
518469
type: MessageType.OFFER,
519470
data: {
520-
roomId,
471+
room_id: roomId,
521472
sdp_offer: pcRef.current.localDescription.sdp,
522473
},
523474
}),
@@ -658,7 +609,7 @@ const VideoTest = () => {
658609
body: JSON.stringify({
659610
type: MessageType.AUDIO,
660611
data: {
661-
roomId,
612+
room_id: roomId,
662613
enabled: newAudioState,
663614
},
664615
}),
@@ -686,7 +637,7 @@ const VideoTest = () => {
686637
body: JSON.stringify({
687638
type: MessageType.MEDIA,
688639
data: {
689-
roomId,
640+
room_id: roomId,
690641
enabled: newVideoState,
691642
},
692643
}),
@@ -702,13 +653,13 @@ const VideoTest = () => {
702653
const hangUp = () => {
703654
setStatusMessage('통화 종료 중...');
704655

705-
if (token && wsRef.current && wsRef.current.readyState === WebSocket.OPEN) {
706-
client?.publish({
656+
if (token && client) {
657+
client.publish({
707658
destination: '/exit',
708659
body: JSON.stringify({
709660
type: MessageType.EXIT,
710661
data: {
711-
roomId,
662+
room_id: roomId,
712663
},
713664
}),
714665
});

0 commit comments

Comments
 (0)