1 | const express = require('express'); |
||
0 ignored issues
–
show
Backwards Compatibility
introduced
by
![]() |
|||
2 | function peerview(name, deps) { |
||
3 | deps.logger.debug('peer-webrtc plugin started.'); |
||
4 | // deps.app.get('/mc', function(req,res){ |
||
5 | // |
||
6 | // }); |
||
7 | deps.app.get('/msgpack.min.js', function (req, res) { |
||
8 | res.sendFile('msgpack.min.js', { root: __dirname + '/node_modules/msgpack-lite/dist' }); |
||
9 | }); |
||
10 | deps.app.get('/simplepeer.min.js', function (req, res) { |
||
11 | res.sendFile('simplepeer.min.js', { root: __dirname + '/node_modules/simple-peer' }); |
||
12 | }); |
||
13 | var connections = {}; |
||
14 | var io = require('socket.io')(deps.server, { path: '/peerview' }); |
||
15 | io.on('error', function (err) { |
||
16 | deps.logger.error(err); |
||
17 | }); |
||
18 | io.on('connection', function (socket) { |
||
19 | connections[socket.id] = socket; |
||
20 | socket.broadcast.emit('user connected'); |
||
21 | socket.on('heartbeat', function (data) { |
||
22 | socket.broadcast.emit('heartbeat', { |
||
23 | type: data, |
||
24 | connectionId: socket.id |
||
25 | }); |
||
26 | }); |
||
27 | socket.on('signal', function (id, data) { |
||
28 | //socket.broadcast.to(id).emit('signal', data, socket.id); |
||
29 | connections[id].emit('signal', data, socket.id); |
||
30 | }); |
||
31 | socket.on('peer-connect-offer', function (peer_id, callback) { |
||
32 | //We intentionally swap out the target's id for the sender's id. |
||
33 | if (connections[peer_id] === undefined) { |
||
34 | callback(false); |
||
35 | return; |
||
36 | } |
||
37 | connections[peer_id].emit('peer-connect-offer', socket.id, callback); |
||
38 | }); |
||
39 | socket.on('close', function () { |
||
40 | delete connections[socket.id]; |
||
41 | }); |
||
42 | }); |
||
43 | } |
||
44 | module.exports = function (name, deps) { |
||
45 | return new peerview(name, deps); |
||
46 | }; |