-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathsocket.js
59 lines (47 loc) · 1.39 KB
/
socket.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
const { Server } = require('socket.io');
let IO;
module.exports.initIO = (httpServer) => {
IO = new Server(httpServer);
IO.use((socket, next) => {
if (socket.handshake.query) {
let userName = socket.handshake.query.name
socket.user = userName;
next();
}
})
IO.on('connection', (socket) => {
console.log(socket.user, "Connected");
socket.join(socket.user);
socket.on('call', (data) => {
let callee = data.name;
let rtcMessage = data.rtcMessage;
socket.to(callee).emit("newCall", {
caller: socket.user,
rtcMessage: rtcMessage
})
})
socket.on('answerCall', (data) => {
let caller = data.caller;
rtcMessage = data.rtcMessage
socket.to(caller).emit("callAnswered", {
callee: socket.user,
rtcMessage: rtcMessage
})
})
socket.on('ICEcandidate', (data) => {
let otherUser = data.user;
let rtcMessage = data.rtcMessage;
socket.to(otherUser).emit("ICEcandidate", {
sender: socket.user,
rtcMessage: rtcMessage
})
})
})
}
module.exports.getIO = () => {
if (!IO) {
throw Error("IO not initilized.")
} else {
return IO;
}
}