@livedigital/client 3.25.1 → 3.25.2
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/constants/events.d.ts +2 -0
- package/dist/constants/events.ts +2 -0
- package/dist/engine/Peer.d.ts +3 -1
- package/dist/index.es.js +3 -3
- package/dist/index.js +4 -4
- package/dist/types/common.d.ts +4 -0
- package/dist/types/engine.d.ts +4 -1
- package/package.json +1 -1
- package/src/constants/events.ts +2 -0
- package/src/engine/Peer.ts +7 -1
- package/src/engine/handlers/ChannelEventHandler.ts +13 -0
- package/src/types/common.ts +5 -0
- package/src/types/engine.ts +5 -0
package/dist/types/common.d.ts
CHANGED
|
@@ -350,3 +350,7 @@ export interface ChannelChangeProducePermissionsPayload {
|
|
|
350
350
|
changedProducePermissions: TrackLabel[];
|
|
351
351
|
}
|
|
352
352
|
export declare type TrackLabelString = 'camera' | 'microphone' | 'screen-video' | 'screen-audio';
|
|
353
|
+
export interface ChangePeerGroupsPayload {
|
|
354
|
+
peerId: string;
|
|
355
|
+
groups: PeerGroup[];
|
|
356
|
+
}
|
package/dist/types/engine.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import Engine from '../engine';
|
|
|
7
7
|
import ChannelEventHandler from '../engine/handlers/ChannelEventHandler';
|
|
8
8
|
import MediaSoupEventHandler from '../engine/handlers/MediaSoupEventHandler';
|
|
9
9
|
import { LoadBalancerApiClientParams } from '../engine/network/LoadBalancerClient';
|
|
10
|
-
import { ActivityConfirmationRequiredPayload, AvailableMediaDevices, ChannelEvent, Logger, LogLevel, LogMessageHandler, Role, TrackLabel } from './common';
|
|
10
|
+
import { ActivityConfirmationRequiredPayload, AvailableMediaDevices, ChannelEvent, Logger, LogLevel, LogMessageHandler, PeerGroup, Role, TrackLabel } from './common';
|
|
11
11
|
import ChannelAudioObserverEventHandler from '../engine/handlers/ChannelAudioObserverEventHandler';
|
|
12
12
|
import { BaseTrack, MediaTracksFactory, Track, InitEffectsSDKParams } from './media';
|
|
13
13
|
import ChannelStateSyncEventHandler from '../engine/handlers/ChannelStateSyncEventHandler';
|
|
@@ -87,6 +87,9 @@ export interface ChannelStateInconsistentPayload {
|
|
|
87
87
|
export interface ProducePermissionsChangedPayload {
|
|
88
88
|
labels: TrackLabel[];
|
|
89
89
|
}
|
|
90
|
+
export interface GroupsChangedPayload {
|
|
91
|
+
groups: PeerGroup[];
|
|
92
|
+
}
|
|
90
93
|
export interface EngineDependenciesFactory {
|
|
91
94
|
createSystem: (params: CreateSystemParams) => System;
|
|
92
95
|
createMedia: (params: CreateMediaParams) => Media;
|
package/package.json
CHANGED
package/src/constants/events.ts
CHANGED
|
@@ -16,6 +16,7 @@ export const CHANNEL_EVENTS = {
|
|
|
16
16
|
changePeerProducePermissions: 'peer.changeProducePermissions',
|
|
17
17
|
addPeerProducePermissions: 'peer.addProducePermissions',
|
|
18
18
|
removePeerProducePermissions: 'peer.removeProducePermissions',
|
|
19
|
+
changePeerGroups: 'peer.groupsChanged',
|
|
19
20
|
ping: 'peer.ping',
|
|
20
21
|
} as const;
|
|
21
22
|
|
|
@@ -66,6 +67,7 @@ export const PEER_EVENTS = {
|
|
|
66
67
|
trackFailed: 'track-failed',
|
|
67
68
|
appDataUpdated: 'app-data-updated',
|
|
68
69
|
producePermissionsChanged: 'produce-permissions-changed',
|
|
70
|
+
groupsChanged: 'groups-changed',
|
|
69
71
|
} as const;
|
|
70
72
|
|
|
71
73
|
export const MEDIASOUP_EVENTS = {
|
package/src/engine/Peer.ts
CHANGED
|
@@ -24,7 +24,7 @@ import PeerProducer from './PeerProducer';
|
|
|
24
24
|
import PeerConsumer from './PeerConsumer';
|
|
25
25
|
import PeerTrack from './media/tracks/PeerTrack';
|
|
26
26
|
import validateAppData from '../helpers/appDataValidator';
|
|
27
|
-
import { ProducePermissionsChangedPayload } from '../types/engine';
|
|
27
|
+
import { GroupsChangedPayload, ProducePermissionsChangedPayload } from '../types/engine';
|
|
28
28
|
import { logResponse } from '../helpers/peer';
|
|
29
29
|
|
|
30
30
|
interface PeerConstructor {
|
|
@@ -63,6 +63,7 @@ export type PeerObserverEvents = {
|
|
|
63
63
|
[PEER_EVENTS.trackPaused]: [PeerTrack];
|
|
64
64
|
[PEER_EVENTS.trackFailed]: [PeerTrack];
|
|
65
65
|
[PEER_EVENTS.producePermissionsChanged]: [ProducePermissionsChangedPayload];
|
|
66
|
+
[PEER_EVENTS.groupsChanged]: [GroupsChangedPayload];
|
|
66
67
|
[MEDIASOUP_EVENTS.producerClose]: [ProducerData];
|
|
67
68
|
[MEDIASOUP_EVENTS.newProducer]: [ProducerData];
|
|
68
69
|
[MEDIASOUP_EVENTS.closeConsumer]: [consumerId: string];
|
|
@@ -615,6 +616,11 @@ class Peer {
|
|
|
615
616
|
});
|
|
616
617
|
}
|
|
617
618
|
|
|
619
|
+
handleGroupsChange(groups: PeerGroup[]): void {
|
|
620
|
+
this.groups = groups;
|
|
621
|
+
this.observer.safeEmit(PEER_EVENTS.groupsChanged, { groups });
|
|
622
|
+
}
|
|
623
|
+
|
|
618
624
|
private emitConnectionQuality(): void {
|
|
619
625
|
// after the initialization a new layer, or new producer, scores of producers and consumers drop for a short time
|
|
620
626
|
setTimeout(() => {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { logResponse } from '../../helpers/peer';
|
|
2
2
|
import {
|
|
3
3
|
ActivityConfirmationRequiredPayload,
|
|
4
|
+
ChangePeerGroupsPayload,
|
|
4
5
|
ChangePeerProducePermissionPayload,
|
|
5
6
|
ChannelChangeProducePermissionsPayload,
|
|
6
7
|
ChannelEvent,
|
|
@@ -126,6 +127,18 @@ class ChannelEventHandler {
|
|
|
126
127
|
|
|
127
128
|
this.logger.info('Peers deleted produce permissions', { groups, producePermissions });
|
|
128
129
|
});
|
|
130
|
+
|
|
131
|
+
this.engine.eventsQueue
|
|
132
|
+
.on(CHANNEL_EVENTS.changePeerGroups, (payload: ChangePeerGroupsPayload) => {
|
|
133
|
+
const { peerId, groups } = payload;
|
|
134
|
+
const peer = this.engine.peersRepository.get(peerId);
|
|
135
|
+
|
|
136
|
+
if (!peer) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
peer.handleGroupsChange(groups);
|
|
141
|
+
});
|
|
129
142
|
}
|
|
130
143
|
|
|
131
144
|
private removeEventListeners() {
|
package/src/types/common.ts
CHANGED
|
@@ -430,3 +430,8 @@ export interface ChannelChangeProducePermissionsPayload {
|
|
|
430
430
|
}
|
|
431
431
|
|
|
432
432
|
export type TrackLabelString = 'camera' | 'microphone' | 'screen-video' | 'screen-audio';
|
|
433
|
+
|
|
434
|
+
export interface ChangePeerGroupsPayload {
|
|
435
|
+
peerId: string;
|
|
436
|
+
groups: PeerGroup[];
|
|
437
|
+
}
|
package/src/types/engine.ts
CHANGED
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
Logger,
|
|
15
15
|
LogLevel,
|
|
16
16
|
LogMessageHandler,
|
|
17
|
+
PeerGroup,
|
|
17
18
|
Role,
|
|
18
19
|
TrackLabel,
|
|
19
20
|
} from './common';
|
|
@@ -117,6 +118,10 @@ export interface ProducePermissionsChangedPayload {
|
|
|
117
118
|
labels: TrackLabel[];
|
|
118
119
|
}
|
|
119
120
|
|
|
121
|
+
export interface GroupsChangedPayload {
|
|
122
|
+
groups: PeerGroup[];
|
|
123
|
+
}
|
|
124
|
+
|
|
120
125
|
export interface EngineDependenciesFactory {
|
|
121
126
|
createSystem: (params: CreateSystemParams) => System;
|
|
122
127
|
createMedia: (params: CreateMediaParams) => Media;
|