Skip to content

Commit a7162be

Browse files
committed
chore: 공통 사용 코드 정리
1 parent acd866a commit a7162be

File tree

4 files changed

+46
-59
lines changed

4 files changed

+46
-59
lines changed

frontend/contents/js/utils.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,15 @@ export const setRoomToken = () => {
99
export const getRoomId = () => location.href.replace(/\/|:|#|%|\.|\[|\]/g, '');
1010

1111
export const getUserId = () => Math.round(Math.random() * 99999);
12+
13+
export const bindClipboardClickEvent = ($target) => {
14+
$target.addEventListener('click', () => {
15+
const link = location.href;
16+
if (window.clipboardData) {
17+
window.clipboardData.setData('text', link);
18+
alert('Copy to Clipboard successful.');
19+
} else {
20+
window.prompt('Copy to clipboard: Ctrl+C, Enter', link); // Copy to clipboard: Ctrl+C, Enter
21+
}
22+
});
23+
};

frontend/views/examples/conference/js/main.js

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import PeerHandler from './modules/peer-handler.js';
22
import MediaHandler from './modules/media-handler.js';
33
import { isSafari, isMobile } from '/js/helpers/env.js';
4-
import { setRoomToken, getRoomId, getUserId } from '/js/utils.js';
4+
import { setRoomToken, getRoomId, getUserId, bindClipboardClickEvent } from '/js/utils.js';
55

66
/*!
77
*
@@ -120,22 +120,6 @@ function send(data) {
120120
socket.send(data);
121121
}
122122

123-
/**
124-
* 클립보드 복사
125-
*/
126-
function setClipboard() {
127-
$uniqueToken.addEventListener('click', () => {
128-
const link = location.href;
129-
130-
if (window.clipboardData) {
131-
window.clipboardData.setData('text', link);
132-
alert('Copy to Clipboard successful.');
133-
} else {
134-
window.prompt('Copy to clipboard: Ctrl+C, Enter', link); // Copy to clipboard: Ctrl+C, Enter
135-
}
136-
});
137-
}
138-
139123
/**
140124
* 로컬 스트림 핸들링
141125
* @param stream
@@ -205,22 +189,24 @@ function handleMicButton(e) {
205189
* 방장 시작 처리
206190
*/
207191
async function handleStartRoom() {
208-
const stream = await peerHandler.getUserMedia(mediaConstraints);
209-
210-
if (stream) {
192+
try {
193+
const stream = await peerHandler.getUserMedia(mediaConstraints);
211194
onLocalStream(stream);
195+
} catch (error) {
196+
console.error('handleStartRoom :>> ', error);
212197
}
213198
}
214199

215200
/**
216201
* 참석자 참여 처리
217202
*/
218203
async function handleJoinRoom() {
219-
const stream = await peerHandler.getUserMedia(mediaConstraints);
220-
221-
if (stream) {
204+
try {
205+
const stream = await peerHandler.getUserMedia(mediaConstraints);
222206
onLocalStream(stream);
223207
peerHandler.startRtcConnection();
208+
} catch (error) {
209+
console.error('handleJoinRoom :>> ', error);
224210
}
225211
}
226212

@@ -256,14 +242,14 @@ function bindPeerEvent() {
256242
*/
257243
function initialize() {
258244
setRoomToken();
259-
setClipboard();
260245
roomId = getRoomId();
261246
userId = getUserId();
262247

263248
// 이벤트 바인딩
264249
bindDomEvent();
265250
bindSocketEvent();
266251
bindPeerEvent();
252+
bindClipboardClickEvent($uniqueToken);
267253
}
268254

269255
initialize();

frontend/views/examples/conference/js/modules/peer-handler.js

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ function PeerHandler(options) {
3333
try {
3434
localStream = await navigator.mediaDevices.getUserMedia(constraints);
3535
} catch (error) {
36-
console.error('Error getUserMedia', error);
36+
return new Promise((_, reject) => reject(error));
3737
}
3838

3939
return localStream;
@@ -69,7 +69,7 @@ function PeerHandler(options) {
6969
});
7070
})
7171
.catch((error) => {
72-
console.error('Error setLocalDescription', error);
72+
console.error('Error createOffer', error);
7373
});
7474
}
7575

@@ -78,15 +78,15 @@ function PeerHandler(options) {
7878
* @param peer
7979
* @param msg offer가 보내온 signaling massage
8080
*/
81-
function createAnswer(peer, msg) {
81+
function createAnswer(peer, offerSdp) {
8282
console.log('createAnswer', arguments);
8383

8484
if (localStream) {
8585
addTrack(peer, localStream);
8686
}
8787

8888
peer
89-
.setRemoteDescription(new RTCSessionDescription(msg.sdp))
89+
.setRemoteDescription(new RTCSessionDescription(offerSdp))
9090
.then(() => {
9191
peer
9292
.createAnswer()
@@ -99,7 +99,9 @@ function PeerHandler(options) {
9999
sdp: SDP,
100100
});
101101
})
102-
.catch(onSdpError);
102+
.catch((error) => {
103+
console.error('Error createAnswer', error);
104+
});
103105
})
104106
.catch((error) => {
105107
console.error('Error setRemoteDescription', error);
@@ -114,7 +116,7 @@ function PeerHandler(options) {
114116
console.log('createPeerConnection', arguments);
115117

116118
peer = new RTCPeerConnection(peerConnectionConfig);
117-
console.log('new peer', peer);
119+
console.log('New peer ', peer);
118120

119121
peer.onicecandidate = (event) => {
120122
if (event.candidate) {
@@ -177,13 +179,6 @@ function PeerHandler(options) {
177179
return peer;
178180
}
179181

180-
/**
181-
* onSdpError
182-
*/
183-
function onSdpError() {
184-
console.log('onSdpError', arguments);
185-
}
186-
187182
/**
188183
* addStream 이후 스펙 적용 (크로스브라우징)
189184
* 스트림을 받아서 PeerConnection track과 stream을 추가 한다.
@@ -248,33 +243,33 @@ function PeerHandler(options) {
248243
* @param data
249244
*/
250245
function signaling(data) {
251-
console.log('onmessage', data);
246+
console.log('signaling', data);
252247

253-
const msg = data;
254-
const sdp = msg.sdp || null;
248+
const sdp = data?.sdp;
249+
const candidate = data?.candidate;
255250

256251
// 접속자가 보내온 offer처리
257252
if (sdp) {
258253
if (sdp.type === 'offer') {
259254
peer = createPeerConnection();
260-
createAnswer(peer, msg);
255+
createAnswer(peer, sdp);
261256

262257
// offer에 대한 응답 처리
263258
} else if (sdp.type === 'answer') {
264-
peer.setRemoteDescription(new RTCSessionDescription(msg.sdp));
259+
peer.setRemoteDescription(new RTCSessionDescription(sdp));
265260
}
266261

267262
// offer or answer cadidate처리
268-
} else if (msg.candidate) {
269-
const candidate = new RTCIceCandidate({
270-
sdpMid: msg.id,
271-
sdpMLineIndex: msg.label,
272-
candidate: msg.candidate,
263+
} else if (candidate) {
264+
const iceCandidate = new RTCIceCandidate({
265+
sdpMid: data.id,
266+
sdpMLineIndex: data.label,
267+
candidate: candidate,
273268
});
274269

275-
peer.addIceCandidate(candidate);
270+
peer.addIceCandidate(iceCandidate);
276271
} else {
277-
//console.log()
272+
// do something
278273
}
279274
}
280275

frontend/views/examples/data-channel/js/modules/peer-handler.js

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function PeerHandler(options) {
5050
});
5151
})
5252
.catch((error) => {
53-
console.error('Error setLocalDescription', error);
53+
console.error('Error createOffer', error);
5454
});
5555
}
5656

@@ -76,7 +76,9 @@ function PeerHandler(options) {
7676
sdp: SDP,
7777
});
7878
})
79-
.catch(onErrorSdp);
79+
.catch((error) => {
80+
console.error('Error createAnswer', error);
81+
});
8082
})
8183
.catch((error) => {
8284
console.error('Error setRemoteDescription', error);
@@ -134,13 +136,6 @@ function PeerHandler(options) {
134136
return peer;
135137
}
136138

137-
/**
138-
* onErrorSdp
139-
*/
140-
function onErrorSdp() {
141-
console.log('onErrorSdp', arguments);
142-
}
143-
144139
/**
145140
* signaling
146141
* @param data
@@ -208,7 +203,6 @@ function PeerHandler(options) {
208203
});
209204

210205
const readSlice = (offset) => {
211-
console.log('readSlice', offset);
212206
const slice = file.slice(offset, offset + CHUNK_SIZE);
213207
fileReader.readAsArrayBuffer(slice);
214208
};

0 commit comments

Comments
 (0)