Make the server seed all torrent files

master
Torjus 2018-07-31 10:36:32 +02:00
parent 0561ff64ac
commit 8bf2aed6de
4 changed files with 2362 additions and 1078 deletions

View File

@ -16,6 +16,15 @@ module.exports =
}, },
// Listening port for https server. // Listening port for https server.
listeningPort : 3443, listeningPort : 3443,
turnServers : [
{
urls : [
'turn:example.com:443?transport=tcp'
],
username : 'example',
credential : 'example'
}
],
mediasoup : mediasoup :
{ {
// mediasoup Server settings. // mediasoup Server settings.

View File

@ -2,6 +2,7 @@
const EventEmitter = require('events').EventEmitter; const EventEmitter = require('events').EventEmitter;
const protooServer = require('protoo-server'); const protooServer = require('protoo-server');
const WebTorrent = require('webtorrent');
const Logger = require('./Logger'); const Logger = require('./Logger');
const config = require('../config'); const config = require('../config');
@ -11,6 +12,14 @@ const BITRATE_FACTOR = 0.75;
const logger = new Logger('Room'); const logger = new Logger('Room');
const torrentClient = new WebTorrent({
tracker : {
rtcConfig : {
iceServers : config.turnServers
}
}
});
class Room extends EventEmitter class Room extends EventEmitter
{ {
constructor(roomId, mediaServer) constructor(roomId, mediaServer)
@ -278,12 +287,17 @@ class Room extends EventEmitter
{ {
accept(); accept();
const { file } = request.data; const fileData = request.data.file;
this._fileHistory.push(file); this._fileHistory.push(fileData);
if (!torrentClient.get(fileData.file.magnet))
{
torrentClient.add(fileData.file.magnet);
}
this._protooRoom.spread('file-receive', { this._protooRoom.spread('file-receive', {
file file : fileData
}, [ protooPeer ]); }, [ protooPeer ]);
break; break;

3404
server/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,8 @@
"express": "^4.16.3", "express": "^4.16.3",
"mediasoup": "^2.1.0", "mediasoup": "^2.1.0",
"passport-dataporten": "^1.3.0", "passport-dataporten": "^1.3.0",
"protoo-server": "^2.0.7" "protoo-server": "^2.0.7",
"webtorrent": "^0.101.2"
}, },
"devDependencies": { "devDependencies": {
"gulp": "^4.0.0", "gulp": "^4.0.0",