diff --git a/server.js b/server.js index 0c2d0c9..352a7ac 100644 --- a/server.js +++ b/server.js @@ -55,14 +55,26 @@ io.on('connection', (socket) => { } }); - // 3. WebRTC 시그널링 (SDP, ICE) - socket.on('webrtcSignal', (data) => { - // const targetSocketId = employeeSockets.get(data.targetId); - console.log('webrtcSignal', data); - if (data.targetId) { - io.to(data.targetId).emit('webrtcSignal', data); + // 3. WebRTC 시그널링 (ICE) + socket.on('icecandidate', (data) => { + if(data.server === 'agent') { + if (data.targetId && data.candidate) { + console.log('icecandidate agent', data); + const to = io.to(data.targetId) + data.targetId = socket.id; + to.emit('icecandidate', data); + } + } else { + const targetSocketId = employeeSockets.get(data.targetId); + if (targetSocketId && data.candidate) { + console.log('icecandidate client', data); + const to = io.to(targetSocketId) + data.targetId = socket.id; + to.emit('icecandidate', data); + } } + }); // 4. 입력 이벤트 전달 (관리자 → 직원) @@ -89,21 +101,31 @@ io.on('connection', (socket) => { } }); - socket.on('offer', (data) => { - console.log('offer', employeeSockets, data.targetId); - if(data.targetId) { - const to = io.to(data.targetId) + socket.on('requestOffer', (data) => { + const targetSocketId = employeeSockets.get(data.targetId); + console.log('requestOffer', employeeSockets, targetSocketId); + if(targetSocketId) { + const to = io.to(targetSocketId) data.targetId = socket.id - to.emit('offer', data); + to.emit('responseOffer', data); } }) - socket.on('answer', (data) => { - console.log('answer', employeeSockets, data.targetId); + socket.on('requestAnswer', (data) => { + console.log('requestAnswer', employeeSockets, data.targetId); if(data.targetId) { const to = io.to(data.targetId) data.targetId = socket.id - to.emit('answer', data); + to.emit('responseAnswer', data); + } + }) + + socket.on('start', (data) => { + console.log('start', employeeSockets, data); + if(data.targetId) { + const to = io.to(data.targetId) + data.targetId = socket.id + to.emit('start', data); } }) });