@livedigital/client 3.6.0 → 3.7.0-channel-state-synchronizer.1
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 +1 -0
- package/dist/constants/events.ts +1 -0
- package/dist/engine/DefaultEngineDependenciesFactory.d.ts +3 -1
- package/dist/engine/Peer.d.ts +1 -0
- package/dist/engine/handlers/ChannelStateSyncEventHandler.d.ts +21 -0
- package/dist/engine/index.d.ts +4 -0
- package/dist/engine/network/index.d.ts +1 -0
- package/dist/index.es.js +12 -12
- package/dist/index.js +12 -12
- package/dist/types/channelStateSyncronizer.d.ts +13 -0
- package/dist/types/engine.d.ts +6 -0
- package/package.json +2 -1
- package/src/constants/events.ts +1 -0
- package/src/engine/DefaultEngineDependenciesFactory.ts +6 -0
- package/src/engine/Peer.ts +4 -0
- package/src/engine/handlers/ChannelStateSyncEventHandler.ts +195 -0
- package/src/engine/index.ts +46 -0
- package/src/engine/network/index.ts +4 -0
- package/src/types/channelStateSyncronizer.ts +14 -0
- package/src/types/engine.ts +7 -0
|
@@ -10,6 +10,7 @@ export declare const CHANNEL_EVENTS: {
|
|
|
10
10
|
activityConfirmationExpired: string;
|
|
11
11
|
getAudioObserverProducer: string;
|
|
12
12
|
getGeneralDataProducer: string;
|
|
13
|
+
getChannelStateSyncDataProducer: string;
|
|
13
14
|
};
|
|
14
15
|
export declare const CLIENT_EVENTS: {
|
|
15
16
|
channelEvent: string;
|
package/dist/constants/events.ts
CHANGED
|
@@ -10,6 +10,7 @@ export const CHANNEL_EVENTS = {
|
|
|
10
10
|
activityConfirmationExpired: 'channel.activityConfirmationExpired',
|
|
11
11
|
getAudioObserverProducer: 'channel.getAudioObserverProducer',
|
|
12
12
|
getGeneralDataProducer: 'channel.getGeneralDataProducer',
|
|
13
|
+
getChannelStateSyncDataProducer: 'channel.getChannelStateSyncDataProducer',
|
|
13
14
|
};
|
|
14
15
|
|
|
15
16
|
export const CLIENT_EVENTS = {
|
|
@@ -4,8 +4,9 @@ import System from './system';
|
|
|
4
4
|
import Media from './media';
|
|
5
5
|
import ChannelEventHandler from './handlers/ChannelEventHandler';
|
|
6
6
|
import MediaSoupEventHandler from './handlers/MediaSoupEventHandler';
|
|
7
|
-
import { CreateIssueDetectorParams, CreateMediaParams, CreateMediaSoupEventHandlerParams, CreateNetworkParams, CreateSystemParams, EngineDependenciesFactory } from '../types/engine';
|
|
7
|
+
import { CreateIssueDetectorParams, CreateMediaParams, CreateMediaSoupEventHandlerParams, CreateNetworkParams, CreateSystemParams, ChannelStateSyncEventHandlerParams, EngineDependenciesFactory } from '../types/engine';
|
|
8
8
|
import ChannelAudioObserverEventHandler from './handlers/ChannelAudioObserverEventHandler';
|
|
9
|
+
import ChannelStateSyncEventHandler from './handlers/ChannelStateSyncEventHandler';
|
|
9
10
|
declare class DefaultEngineDependenciesFactory implements EngineDependenciesFactory {
|
|
10
11
|
createSystem(params: CreateSystemParams): System;
|
|
11
12
|
createMedia(params: CreateMediaParams): Media;
|
|
@@ -13,6 +14,7 @@ declare class DefaultEngineDependenciesFactory implements EngineDependenciesFact
|
|
|
13
14
|
createChannelEventHandler(params: CreateMediaSoupEventHandlerParams): ChannelEventHandler;
|
|
14
15
|
createMediaSoupEventHandler(params: CreateMediaSoupEventHandlerParams): MediaSoupEventHandler;
|
|
15
16
|
createAudioObserverEventHandler(params: CreateMediaSoupEventHandlerParams): ChannelAudioObserverEventHandler;
|
|
17
|
+
createChannelStateSyncEventHandler(params: ChannelStateSyncEventHandlerParams): ChannelStateSyncEventHandler;
|
|
16
18
|
createIssueDetector(params: CreateIssueDetectorParams): WebRTCIssueDetector;
|
|
17
19
|
}
|
|
18
20
|
export default DefaultEngineDependenciesFactory;
|
package/dist/engine/Peer.d.ts
CHANGED
|
@@ -47,6 +47,7 @@ declare class Peer {
|
|
|
47
47
|
subscribe({ producerId, muted }: SubscribeOptions): Promise<void>;
|
|
48
48
|
unsubscribe(producerId: string): Promise<void>;
|
|
49
49
|
getInfo(): Promise<PeerInfo>;
|
|
50
|
+
getProducers(): PeerProducer[];
|
|
50
51
|
private handleNewProducer;
|
|
51
52
|
private handlePeerEvents;
|
|
52
53
|
reset(): void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { LogMessageHandler } from '../../types/common';
|
|
3
|
+
import Engine from '../index';
|
|
4
|
+
declare class ChannelStateSyncEventHandler {
|
|
5
|
+
#private;
|
|
6
|
+
private readonly engine;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(params: {
|
|
9
|
+
engine: Engine;
|
|
10
|
+
onLogMessage?: LogMessageHandler;
|
|
11
|
+
});
|
|
12
|
+
handle(payload: Buffer): void;
|
|
13
|
+
private handleChannelStateEvent;
|
|
14
|
+
private resetMissings;
|
|
15
|
+
private processStateInconsistency;
|
|
16
|
+
private parseChannelStateSyncEventPayload;
|
|
17
|
+
private getLocalState;
|
|
18
|
+
private areEqualStates;
|
|
19
|
+
private getHash;
|
|
20
|
+
}
|
|
21
|
+
export default ChannelStateSyncEventHandler;
|
package/dist/engine/index.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ declare class Engine {
|
|
|
33
33
|
private channelEventsHandler;
|
|
34
34
|
private mediaSoupEventsHandler;
|
|
35
35
|
private channelAudioObserverEventHandler;
|
|
36
|
+
private channelStateSyncEventHandler;
|
|
36
37
|
private initialized;
|
|
37
38
|
private isJoined;
|
|
38
39
|
private app?;
|
|
@@ -42,10 +43,12 @@ declare class Engine {
|
|
|
42
43
|
private webRtcIssueDetector?;
|
|
43
44
|
private audioObserver?;
|
|
44
45
|
private generalDataConsumer?;
|
|
46
|
+
private channelStateSyncDataConsumer?;
|
|
45
47
|
private activeSpeakerPeer?;
|
|
46
48
|
private rejoinRequested;
|
|
47
49
|
private readonly handleChannelAudioObserverEvent;
|
|
48
50
|
private readonly handleDataChannelEvent;
|
|
51
|
+
private readonly handleChannelStateSyncEvent;
|
|
49
52
|
constructor(params: EngineParams);
|
|
50
53
|
private initialize;
|
|
51
54
|
release(): Promise<void>;
|
|
@@ -85,6 +88,7 @@ declare class Engine {
|
|
|
85
88
|
private createSelfPeerTrack;
|
|
86
89
|
private createAudioObserver;
|
|
87
90
|
private createGeneralDataConsumer;
|
|
91
|
+
private createChannelStateSyncDataConsumer;
|
|
88
92
|
private triggerRejoinEventIfAppropriate;
|
|
89
93
|
}
|
|
90
94
|
export default Engine;
|
|
@@ -39,6 +39,7 @@ declare class Network {
|
|
|
39
39
|
updatePeerAppData({ peerId, appData }: UpdatePeerAppDataPayload): Promise<SocketResponse>;
|
|
40
40
|
getAudioObserverProducer(): Promise<SocketResponse>;
|
|
41
41
|
getGeneralDataProducer(): Promise<SocketResponse>;
|
|
42
|
+
getChannelStateSyncDataProducer(): Promise<SocketResponse>;
|
|
42
43
|
getTransportsStateInfo(): Promise<TransportsStateInfo>;
|
|
43
44
|
private getParsedTransportStats;
|
|
44
45
|
private logTransportDetails;
|