Merge branch 'feat-lobby' of https://github.com/havfo/multiparty-meeting into feat-lobby
This commit is contained in:
+5
-3
@@ -1,5 +1,3 @@
|
||||
'use strict';
|
||||
|
||||
const EventEmitter = require('events').EventEmitter;
|
||||
const Logger = require('./Logger');
|
||||
|
||||
@@ -46,7 +44,11 @@ class Lobby extends EventEmitter
|
||||
{
|
||||
logger.info('peerList()');
|
||||
|
||||
return Object.values(this._peers).map((peer) => ({ peerId: peer.peerId, displayName: peer.displayName }));
|
||||
return Object.values(this._peers).map((peer) =>
|
||||
({
|
||||
peerId : peer.peerId,
|
||||
displayName : peer.displayName
|
||||
}));
|
||||
}
|
||||
|
||||
hasPeer(peerId)
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
'use strict';
|
||||
|
||||
const debug = require('debug');
|
||||
|
||||
const APP_NAME = 'multiparty-meeting-server';
|
||||
|
||||
+25
-27
@@ -1,5 +1,3 @@
|
||||
'use strict';
|
||||
|
||||
const EventEmitter = require('events').EventEmitter;
|
||||
const Logger = require('./Logger');
|
||||
const Lobby = require('./Lobby');
|
||||
@@ -23,7 +21,7 @@ class Room extends EventEmitter
|
||||
logger.info('create() [roomId:%s, forceH264:%s]', roomId);
|
||||
|
||||
// Router media codecs.
|
||||
let mediaCodecs = config.mediasoup.router.mediaCodecs;
|
||||
const mediaCodecs = config.mediasoup.router.mediaCodecs;
|
||||
|
||||
// Create a mediasoup Router.
|
||||
const mediasoupRouter = await mediasoupWorker.createRouter({ mediaCodecs });
|
||||
@@ -58,18 +56,19 @@ class Room extends EventEmitter
|
||||
// if true: accessCode is a possibility to open the room
|
||||
this._joinByAccesCode = true;
|
||||
|
||||
// access code to the room, applicable if ( _locked == true and _joinByAccessCode == true )
|
||||
// access code to the room,
|
||||
// applicable if ( _locked == true and _joinByAccessCode == true )
|
||||
this._accessCode = '';
|
||||
|
||||
this._lobby = new Lobby();
|
||||
|
||||
this._lobby.on('promotePeer', (peer) =>
|
||||
this._lobby.on('promotePeer', (promotedPeer) =>
|
||||
{
|
||||
logger.info('promotePeer() [peer:"%o"]', peer);
|
||||
logger.info('promotePeer() [promotedPeer:"%o"]', promotedPeer);
|
||||
|
||||
const { peerId } = peer;
|
||||
const { peerId } = promotedPeer;
|
||||
|
||||
this._peerJoining({ ...peer });
|
||||
this._peerJoining({ ...promotedPeer });
|
||||
|
||||
Object.values(this._peers).forEach((peer) =>
|
||||
{
|
||||
@@ -77,9 +76,9 @@ class Room extends EventEmitter
|
||||
});
|
||||
});
|
||||
|
||||
this._lobby.on('lobbyPeerDisplayNameChanged', (peer) =>
|
||||
this._lobby.on('lobbyPeerDisplayNameChanged', (changedPeer) =>
|
||||
{
|
||||
const { peerId, displayName } = peer;
|
||||
const { peerId, displayName } = changedPeer;
|
||||
|
||||
Object.values(this._peers).forEach((peer) =>
|
||||
{
|
||||
@@ -87,11 +86,11 @@ class Room extends EventEmitter
|
||||
});
|
||||
});
|
||||
|
||||
this._lobby.on('peerClosed', (peer) =>
|
||||
this._lobby.on('peerClosed', (closedPeer) =>
|
||||
{
|
||||
logger.info('peerClosed() [peer:"%o"]', peer);
|
||||
logger.info('peerClosed() [closedPeer:"%o"]', closedPeer);
|
||||
|
||||
const { peerId } = peer;
|
||||
const { peerId } = closedPeer;
|
||||
|
||||
Object.values(this._peers).forEach((peer) =>
|
||||
{
|
||||
@@ -151,7 +150,7 @@ class Room extends EventEmitter
|
||||
// Notify all Peers.
|
||||
Object.values(this._peers).forEach((peer) =>
|
||||
{
|
||||
this._notification(peer.socket, 'activeSpeaker', { peerId : null });
|
||||
this._notification(peer.socket, 'activeSpeaker', { peerId: null });
|
||||
});
|
||||
});
|
||||
|
||||
@@ -259,7 +258,7 @@ class Room extends EventEmitter
|
||||
{
|
||||
socket.join(this._roomId);
|
||||
|
||||
const peer = { id : peerId, socket : socket };
|
||||
const peer = { id: peerId, socket: socket };
|
||||
|
||||
const index = this._lastN.indexOf(peerId);
|
||||
|
||||
@@ -279,13 +278,13 @@ class Room extends EventEmitter
|
||||
return this._locked;
|
||||
}
|
||||
|
||||
peerAuthenticated(peerid)
|
||||
peerAuthenticated(peerId)
|
||||
{
|
||||
logger.debug('peerAuthenticated() | [peerId:"%s"]', peerId);
|
||||
|
||||
if (!this._locked)
|
||||
{
|
||||
if (!Boolean(this._peers[peerid]))
|
||||
if (!this._peers[peerId])
|
||||
{
|
||||
this._lobby.promotePeer(peerId);
|
||||
}
|
||||
@@ -833,15 +832,16 @@ class Room extends EventEmitter
|
||||
{
|
||||
// Return to sender
|
||||
const lobbyPeers = this._lobby.peerList();
|
||||
|
||||
cb(
|
||||
null,
|
||||
{
|
||||
chatHistory : this._chatHistory,
|
||||
fileHistory : this._fileHistory,
|
||||
lastN : this._lastN,
|
||||
locked : this._locked,
|
||||
lobbyPeers : lobbyPeers,
|
||||
accessCode : this._accessCode
|
||||
chatHistory : this._chatHistory,
|
||||
fileHistory : this._fileHistory,
|
||||
lastNHistory : this._lastN,
|
||||
locked : this._locked,
|
||||
lobbyPeers : lobbyPeers,
|
||||
accessCode : this._accessCode
|
||||
}
|
||||
);
|
||||
|
||||
@@ -890,7 +890,7 @@ class Room extends EventEmitter
|
||||
peerId : peer.id,
|
||||
accessCode : accessCode
|
||||
}, true);
|
||||
//}
|
||||
// }
|
||||
|
||||
// Return no error
|
||||
cb();
|
||||
@@ -906,7 +906,7 @@ class Room extends EventEmitter
|
||||
|
||||
// Spread to others
|
||||
this._notification(peer.socket, 'setJoinByAccessCode', {
|
||||
peerId : peer.id,
|
||||
peerId : peer.id,
|
||||
joinByAccessCode : joinByAccessCode
|
||||
}, true);
|
||||
|
||||
@@ -915,7 +915,6 @@ class Room extends EventEmitter
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case 'promotePeer':
|
||||
{
|
||||
@@ -1103,7 +1102,6 @@ class Room extends EventEmitter
|
||||
kind : producer.kind,
|
||||
producerId : producer.id,
|
||||
id : consumer.id,
|
||||
kind : consumer.kind,
|
||||
rtpParameters : consumer.rtpParameters,
|
||||
type : consumer.type,
|
||||
appData : producer.appData,
|
||||
|
||||
Reference in New Issue
Block a user