@livedigital/client 1.16.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/engine/index.d.ts +4 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.es.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/engine/index.ts +18 -3
- package/src/index.ts +5 -0
package/package.json
CHANGED
package/src/engine/index.ts
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
EndTrackPayload,
|
|
7
7
|
JoinChannelParams,
|
|
8
8
|
PeerResponse,
|
|
9
|
+
Role,
|
|
9
10
|
SocketResponse,
|
|
10
11
|
StartTrackPayload,
|
|
11
12
|
Track,
|
|
@@ -125,6 +126,14 @@ class Engine {
|
|
|
125
126
|
return Array.from(this.peersRepository.values());
|
|
126
127
|
}
|
|
127
128
|
|
|
129
|
+
public get hostPeers(): Peer[] {
|
|
130
|
+
return this.peers.filter((peer) => peer.role === 'host');
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
public get audiencePeers(): Peer[] {
|
|
134
|
+
return this.peers.filter((peer) => peer.role === 'audience');
|
|
135
|
+
}
|
|
136
|
+
|
|
128
137
|
public get mySocketId(): string | undefined {
|
|
129
138
|
return this.network.socket.id;
|
|
130
139
|
}
|
|
@@ -145,6 +154,15 @@ class Engine {
|
|
|
145
154
|
}
|
|
146
155
|
}
|
|
147
156
|
|
|
157
|
+
public async loadPeers(role?: Role): Promise<void> {
|
|
158
|
+
const { peers } = await this.network.socket
|
|
159
|
+
.request(CHANNEL_EVENTS.channelGetPeers, { role }) as { peers: PeerResponse[] };
|
|
160
|
+
|
|
161
|
+
peers
|
|
162
|
+
.filter((peer) => !this.peersRepository.has(peer.id))
|
|
163
|
+
.forEach((peer) => this.setPeer(peer));
|
|
164
|
+
}
|
|
165
|
+
|
|
148
166
|
public setPeer(peerData: PeerResponse): Peer {
|
|
149
167
|
const peer = new Peer({
|
|
150
168
|
...peerData,
|
|
@@ -401,9 +419,6 @@ class Engine {
|
|
|
401
419
|
try {
|
|
402
420
|
await this.network.socket.request(CHANNEL_EVENTS.channelJoin, params);
|
|
403
421
|
await this.initialize();
|
|
404
|
-
const { peers } = await this.network.socket
|
|
405
|
-
.request(CHANNEL_EVENTS.channelGetPeers) as { peers: PeerResponse[] };
|
|
406
|
-
peers.forEach((peer: PeerResponse) => this.setPeer(peer));
|
|
407
422
|
this.channelEventsHandler.subscribeToEvents();
|
|
408
423
|
this.mediaSoupEventsHandler.subscribeToEvents();
|
|
409
424
|
this.app = params.appId;
|
package/src/index.ts
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
CreateMicrophoneAudioTrackOptions,
|
|
5
5
|
CreateScreenMediaOptions,
|
|
6
6
|
JoinChannelParams,
|
|
7
|
+
Role,
|
|
7
8
|
Track,
|
|
8
9
|
} from './types/common';
|
|
9
10
|
import EnhancedEventEmitter from './EnhancedEventEmitter';
|
|
@@ -102,6 +103,10 @@ class Client {
|
|
|
102
103
|
deleteTrack(track: Track): void {
|
|
103
104
|
return this.engine.deleteTrack(track);
|
|
104
105
|
}
|
|
106
|
+
|
|
107
|
+
loadPeers(role?: Role): Promise<void> {
|
|
108
|
+
return this.engine.loadPeers(role);
|
|
109
|
+
}
|
|
105
110
|
}
|
|
106
111
|
|
|
107
112
|
export default Client;
|