Make the server seed all torrent files
parent
0561ff64ac
commit
8bf2aed6de
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -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",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue