-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
39 lines (32 loc) · 1000 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
const express = require('express')
const socketIO = require('socket.io')
const http = require('http')
const app = express()
const port = 8000
const server = http.createServer(app)
const io = socketIO(server, {
cors: {
origin : 'http://localhost:3000'
}
})
const offerMap = new Map();
io.on('connection', (socket) => {
console.log("socket connected: ", socket.id);
socket.on('join', ({roomId}) => {
socket.join(roomId);
const prevOffer = offerMap.get(roomId);
socket.emit('remote-offer', {offer: prevOffer});
})
socket.on('new-offer', ({offer, roomId}) => {
offerMap.set(roomId, offer);
})
socket.on('new-answer', ({answer, roomId}) => {
socket.to(roomId).emit('remote-answer', {answer})
})
socket.on('new-ice', ({iceCandidates, roomId}) => {
socket.to(roomId).emit('remote-ice', {iceCandidates})
})
})
server.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})