@livedigital/client 3.16.0-new-peer-id.2 → 3.16.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.
Files changed (58) hide show
  1. package/dist/EnhancedEventEmitter.d.ts +3 -16
  2. package/dist/constants/common.d.ts +1 -1
  3. package/dist/constants/common.ts +1 -1
  4. package/dist/constants/events.d.ts +69 -75
  5. package/dist/constants/events.ts +8 -15
  6. package/dist/engine/DefaultEngineDependenciesFactory.d.ts +0 -2
  7. package/dist/engine/Peer.d.ts +2 -29
  8. package/dist/engine/handlers/ChannelStateSyncEventHandler/ChannelStateConsistencyCheckResult.d.ts +0 -2
  9. package/dist/engine/handlers/ChannelStateSyncEventHandler/ChannelStateConsistencyChecker.d.ts +0 -2
  10. package/dist/engine/handlers/ChannelStateSyncEventHandler/consts.d.ts +4 -0
  11. package/dist/engine/handlers/ChannelStateSyncEventHandler/index.d.ts +7 -7
  12. package/dist/engine/handlers/ChannelStateSyncEventHandler/types.d.ts +5 -0
  13. package/dist/engine/index.d.ts +7 -13
  14. package/dist/engine/media/tracks/DefaultBaseTrack.d.ts +1 -2
  15. package/dist/engine/media/tracks/PeerTrack.d.ts +1 -12
  16. package/dist/engine/network/Socket.d.ts +0 -1
  17. package/dist/engine/network/index.d.ts +4 -10
  18. package/dist/index.d.ts +4 -6
  19. package/dist/index.es.js +2 -2
  20. package/dist/index.js +2 -2
  21. package/dist/types/channelStateSyncronizer.d.ts +0 -1
  22. package/dist/types/common.d.ts +3 -13
  23. package/dist/types/engine.d.ts +6 -40
  24. package/dist/types/media.d.ts +2 -3
  25. package/dist/types/network.d.ts +0 -12
  26. package/dist/types/socket.d.ts +0 -1
  27. package/package.json +2 -4
  28. package/src/EnhancedEventEmitter.ts +9 -96
  29. package/src/constants/common.ts +1 -1
  30. package/src/constants/events.ts +8 -15
  31. package/src/engine/DefaultEngineDependenciesFactory.ts +0 -5
  32. package/src/engine/Peer.ts +6 -56
  33. package/src/engine/handlers/ChannelEventHandler.ts +2 -0
  34. package/src/engine/handlers/ChannelStateSyncEventHandler/ChannelStateConsistencyCheckResult.ts +1 -6
  35. package/src/engine/handlers/ChannelStateSyncEventHandler/ChannelStateConsistencyChecker.ts +0 -13
  36. package/src/engine/handlers/ChannelStateSyncEventHandler/consts.ts +7 -0
  37. package/src/engine/handlers/ChannelStateSyncEventHandler/index.ts +64 -26
  38. package/src/engine/handlers/ChannelStateSyncEventHandler/types.ts +7 -0
  39. package/src/engine/handlers/MediaSoupEventHandler.ts +4 -4
  40. package/src/engine/index.ts +56 -127
  41. package/src/engine/media/index.ts +4 -5
  42. package/src/engine/media/tracks/DefaultAudioTrack.ts +1 -1
  43. package/src/engine/media/tracks/DefaultBaseTrack.ts +13 -14
  44. package/src/engine/media/tracks/DefaultVideoTrack.ts +1 -1
  45. package/src/engine/media/tracks/PeerTrack.ts +1 -10
  46. package/src/engine/network/Socket.ts +1 -19
  47. package/src/engine/network/index.ts +168 -168
  48. package/src/index.ts +9 -20
  49. package/src/types/channelStateSyncronizer.ts +0 -1
  50. package/src/types/common.ts +2 -15
  51. package/src/types/engine.ts +6 -47
  52. package/src/types/media.ts +2 -3
  53. package/src/types/network.ts +0 -12
  54. package/src/types/socket.ts +0 -1
  55. package/dist/engine/ChannelStateSynchronizer.d.ts +0 -21
  56. package/dist/helpers/common.d.ts +0 -3
  57. package/src/engine/ChannelStateSynchronizer.ts +0 -194
  58. package/src/helpers/common.ts +0 -53
@@ -1,20 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
- declare type Events = Record<string, any[]>;
4
- export default class EnhancedEventEmitter<E extends Events = Events> extends EventEmitter {
3
+ declare class EnhancedEventEmitter extends EventEmitter {
5
4
  constructor();
6
- emit<K extends keyof E & string>(eventName: K, ...args: E[K]): boolean;
7
- safeEmit<K extends keyof E & string>(eventName: K, ...args: E[K]): boolean;
8
- on<K extends keyof E & string>(eventName: K, listener: (...args: E[K]) => void): this;
9
- off<K extends keyof E & string>(eventName: K, listener: (...args: E[K]) => void): this;
10
- addListener<K extends keyof E & string>(eventName: K, listener: (...args: E[K]) => void): this;
11
- prependListener<K extends keyof E & string>(eventName: K, listener: (...args: E[K]) => void): this;
12
- once<K extends keyof E & string>(eventName: K, listener: (...args: E[K]) => void): this;
13
- prependOnceListener<K extends keyof E & string>(eventName: K, listener: (...args: E[K]) => void): this;
14
- removeListener<K extends keyof E & string>(eventName: K, listener: (...args: E[K]) => void): this;
15
- removeAllListeners<K extends keyof E & string>(eventName?: K): this;
16
- listenerCount<K extends keyof E & string>(eventName: K): number;
17
- listeners<K extends keyof E & string>(eventName: K): Function[];
18
- rawListeners<K extends keyof E & string>(eventName: K): Function[];
5
+ safeEmit(event: string, ...args: unknown[]): boolean;
19
6
  }
20
- export {};
7
+ export default EnhancedEventEmitter;
@@ -1,5 +1,5 @@
1
1
  import { LogLevel } from '../types/common';
2
- export declare const SIGNALING_API_VERSION = 3;
2
+ export declare const SIGNALING_API_VERSION = 2;
3
3
  export declare const LOG_LEVEL_ERROR: LogLevel;
4
4
  export declare const LOG_LEVEL_WARN: LogLevel;
5
5
  export declare const LOG_LEVEL_INFO: LogLevel;
@@ -1,6 +1,6 @@
1
1
  import { LogLevel } from '../types/common';
2
2
 
3
- export const SIGNALING_API_VERSION = 3;
3
+ export const SIGNALING_API_VERSION = 2;
4
4
 
5
5
  export const LOG_LEVEL_ERROR: LogLevel = 3;
6
6
  export const LOG_LEVEL_WARN: LogLevel = 4;
@@ -1,87 +1,81 @@
1
1
  export declare const CHANNEL_EVENTS: {
2
- readonly channelEvent: "channel.event";
3
- readonly channelJoin: "channel.join";
4
- readonly channelGetPeers: "channel.getPeers";
5
- readonly channelLeave: "peer.disconnected";
6
- readonly updatePeerAppData: "peer.updateAppData";
7
- readonly activityConfirm: "channel.confirmActivity";
8
- readonly activityConfirmationAcquired: "channel.activityConfirmationAcquired";
9
- readonly activityConfirmationRequired: "channel.activityConfirmationRequired";
10
- readonly activityConfirmationExpired: "channel.activityConfirmationExpired";
11
- readonly getAudioObserverProducer: "channel.getAudioObserverProducer";
12
- readonly getGeneralDataProducer: "channel.getGeneralDataProducer";
13
- readonly getChannelStateSyncDataProducer: "channel.getChannelStateSyncDataProducer";
2
+ channelEvent: string;
3
+ channelJoin: string;
4
+ channelGetPeers: string;
5
+ channelLeave: string;
6
+ updatePeerAppData: string;
7
+ activityConfirm: string;
8
+ activityConfirmationAcquired: string;
9
+ activityConfirmationRequired: string;
10
+ activityConfirmationExpired: string;
11
+ getAudioObserverProducer: string;
12
+ getGeneralDataProducer: string;
13
+ getChannelStateSyncDataProducer: string;
14
14
  };
15
15
  export declare const CLIENT_EVENTS: {
16
- readonly channelEvent: "channel-event";
17
- readonly peerJoined: "peer-joined";
18
- readonly peerLeft: "peer-left";
19
- readonly activityConfirmationRequired: "channel-activity-confirmation-required";
20
- readonly activityConfirmationAcquired: "channel-activity-confirmation-acquired";
21
- readonly activityConfirmationExpired: "channel-activity-confirmation-expired";
22
- readonly channelRejoinRequired: "channel-rejoin-required";
23
- readonly devicesListUpdated: "devices-list-updated";
24
- readonly transportConnectionTimeout: "transport-connection-timeout";
25
- readonly trackForceClosed: "track-force-closed";
26
- readonly activeSpeakerChanged: "active-speaker-changed";
27
- readonly connectionLost: "connection-lost";
28
- readonly connectionRestored: "connection-restored";
29
- readonly forcedDisconnect: "forced-disconnect";
30
- readonly rejectUnauthorized: "reject-unauthorized";
16
+ channelEvent: string;
17
+ peerJoined: string;
18
+ peerLeft: string;
19
+ activityConfirmationRequired: string;
20
+ activityConfirmationAcquired: string;
21
+ activityConfirmationExpired: string;
22
+ channelRejoinRequired: string;
23
+ devicesListUpdated: string;
24
+ transportConnectionTimeout: string;
25
+ trackPublishingFailed: string;
26
+ trackForceClosed: string;
27
+ activeSpeakerChanged: string;
28
+ channelStateInconsistent: string;
31
29
  };
32
30
  export declare const TRACK_EVENTS: {
33
- readonly volumeChanged: "volume-changed";
31
+ volumeChanged: string;
34
32
  };
35
33
  export declare const INTERNAL_CLIENT_EVENTS: {
36
- readonly trackProduced: "track-produced";
37
- readonly trackUnproduced: "track-unproduced";
38
- readonly trackPaused: "track-paused";
39
- readonly trackResumed: "track-resumed";
40
- readonly trackClosed: "track-closed";
41
- readonly trackReopened: "track-reopened";
34
+ trackProduced: string;
35
+ trackUnproduced: string;
36
+ trackPaused: string;
37
+ trackResumed: string;
38
+ trackClosed: string;
39
+ trackReopened: string;
42
40
  };
43
41
  export declare const PEER_EVENTS: {
44
- readonly mediaPublished: "media-published";
45
- readonly mediaUnPublished: "media-unpublished";
46
- readonly publisherPaused: "publisher-paused";
47
- readonly publisherResumed: "publisher-resumed";
48
- readonly connectionQualityChanged: "connection-quality-changed";
49
- readonly trackStart: "track-start";
50
- readonly trackEnd: "track-end";
51
- readonly trackPaused: "track-paused";
52
- readonly trackResumed: "track-resumed";
53
- readonly trackFailed: "track-failed";
54
- readonly appDataUpdated: "app-data-updated";
42
+ mediaPublished: string;
43
+ mediaUnPublished: string;
44
+ publisherPaused: string;
45
+ publisherResumed: string;
46
+ connectionQualityChanged: string;
47
+ trackStart: string;
48
+ trackEnd: string;
49
+ trackPaused: string;
50
+ trackResumed: string;
51
+ trackFailed: string;
52
+ appDataUpdated: string;
55
53
  };
56
54
  export declare const MEDIASOUP_EVENTS: {
57
- readonly newProducer: "peer.newProducer";
58
- readonly producerClose: "producer.close";
59
- readonly producerPause: "producer.pause";
60
- readonly producerResume: "producer.resume";
61
- readonly producerPaused: "producer.paused";
62
- readonly producerResumed: "producer.resumed";
63
- readonly producerForceClosed: "producer.forceClosed";
64
- readonly producerScoreChanged: "producer.scoreChanged";
65
- readonly producerSetMaxSpatialLayer: "producer.setMaxSpatialLayer";
66
- readonly producerRequestMaxSpatialLayer: "producer.requestMaxSpatialLayer";
67
- readonly createConsumer: "consumer.create";
68
- readonly createDataConsumer: "dataConsumer.create";
69
- readonly closeConsumer: "consumer.close";
70
- readonly pauseConsumer: "consumer.pause";
71
- readonly resumeConsumer: "consumer.resume";
72
- readonly consumerScoreChanged: "consumer.scoreChanged";
73
- readonly consumerChangePreferredLayers: "consumer.changeConsumerPreferredLayers";
74
- readonly consumerRequestKeyFrame: "consumer.requestKeyFrame";
75
- readonly setConsumerPriority: "consumer.setConsumerPriority";
76
- readonly transportCreate: "transport.create";
77
- readonly transportClose: "transport.close";
78
- readonly transportConnect: "transport.connect";
79
- readonly transportProduce: "transport.produce";
80
- readonly transportConnectionTimeout: "transport.connectionTimeout";
81
- readonly transportStateChange: "connectionstatechange";
82
- readonly transportGetIceParameters: "transport.getIceParameters";
83
- };
84
- export declare const NETWORK_OBSERVER_EVENTS: {
85
- readonly socketState: "socket-state";
86
- readonly transportState: "transport-state";
55
+ newProducer: string;
56
+ producerClose: string;
57
+ producerPause: string;
58
+ producerResume: string;
59
+ producerPaused: string;
60
+ producerResumed: string;
61
+ producerForceClosed: string;
62
+ producerScoreChanged: string;
63
+ producerSetMaxSpatialLayer: string;
64
+ producerRequestMaxSpatialLayer: string;
65
+ createConsumer: string;
66
+ createDataConsumer: string;
67
+ closeConsumer: string;
68
+ pauseConsumer: string;
69
+ resumeConsumer: string;
70
+ consumerScoreChanged: string;
71
+ consumerChangePreferredLayers: string;
72
+ consumerRequestKeyFrame: string;
73
+ setConsumerPriority: string;
74
+ transportCreate: string;
75
+ transportClose: string;
76
+ transportConnect: string;
77
+ transportProduce: string;
78
+ transportConnectionTimeout: string;
79
+ transportStateChange: string;
80
+ transportGetIceParameters: string;
87
81
  };
@@ -11,7 +11,7 @@ export const CHANNEL_EVENTS = {
11
11
  getAudioObserverProducer: 'channel.getAudioObserverProducer',
12
12
  getGeneralDataProducer: 'channel.getGeneralDataProducer',
13
13
  getChannelStateSyncDataProducer: 'channel.getChannelStateSyncDataProducer',
14
- } as const;
14
+ };
15
15
 
16
16
  export const CLIENT_EVENTS = {
17
17
  channelEvent: 'channel-event',
@@ -23,17 +23,15 @@ export const CLIENT_EVENTS = {
23
23
  channelRejoinRequired: 'channel-rejoin-required',
24
24
  devicesListUpdated: 'devices-list-updated',
25
25
  transportConnectionTimeout: 'transport-connection-timeout',
26
+ trackPublishingFailed: 'track-publishing-failed',
26
27
  trackForceClosed: 'track-force-closed',
27
28
  activeSpeakerChanged: 'active-speaker-changed',
28
- connectionLost: 'connection-lost',
29
- connectionRestored: 'connection-restored',
30
- forcedDisconnect: 'forced-disconnect',
31
- rejectUnauthorized: 'reject-unauthorized',
32
- } as const;
29
+ channelStateInconsistent: 'channel-state-inconsistent',
30
+ };
33
31
 
34
32
  export const TRACK_EVENTS = {
35
33
  volumeChanged: 'volume-changed',
36
- } as const;
34
+ };
37
35
 
38
36
  export const INTERNAL_CLIENT_EVENTS = {
39
37
  trackProduced: 'track-produced',
@@ -42,7 +40,7 @@ export const INTERNAL_CLIENT_EVENTS = {
42
40
  trackResumed: 'track-resumed',
43
41
  trackClosed: 'track-closed',
44
42
  trackReopened: 'track-reopened',
45
- } as const;
43
+ };
46
44
 
47
45
  export const PEER_EVENTS = {
48
46
  mediaPublished: 'media-published',
@@ -56,7 +54,7 @@ export const PEER_EVENTS = {
56
54
  trackResumed: 'track-resumed',
57
55
  trackFailed: 'track-failed',
58
56
  appDataUpdated: 'app-data-updated',
59
- } as const;
57
+ };
60
58
 
61
59
  export const MEDIASOUP_EVENTS = {
62
60
  newProducer: 'peer.newProducer',
@@ -85,9 +83,4 @@ export const MEDIASOUP_EVENTS = {
85
83
  transportConnectionTimeout: 'transport.connectionTimeout',
86
84
  transportStateChange: 'connectionstatechange',
87
85
  transportGetIceParameters: 'transport.getIceParameters',
88
- } as const;
89
-
90
- export const NETWORK_OBSERVER_EVENTS = {
91
- socketState: 'socket-state',
92
- transportState: 'transport-state',
93
- } as const;
86
+ };
@@ -7,7 +7,6 @@ import MediaSoupEventHandler from './handlers/MediaSoupEventHandler';
7
7
  import { CreateIssueDetectorParams, CreateMediaParams, CreateMediaSoupEventHandlerParams, CreateNetworkParams, CreateSystemParams, ChannelStateSyncEventHandlerParams, EngineDependenciesFactory } from '../types/engine';
8
8
  import ChannelAudioObserverEventHandler from './handlers/ChannelAudioObserverEventHandler';
9
9
  import ChannelStateSyncEventHandler from './handlers/ChannelStateSyncEventHandler';
10
- import ChannelStateSynchronizer, { ChannelStateSynchronizerParams } from './ChannelStateSynchronizer';
11
10
  declare class DefaultEngineDependenciesFactory implements EngineDependenciesFactory {
12
11
  createSystem(params: CreateSystemParams): System;
13
12
  createMedia(params: CreateMediaParams): Media;
@@ -16,7 +15,6 @@ declare class DefaultEngineDependenciesFactory implements EngineDependenciesFact
16
15
  createMediaSoupEventHandler(params: CreateMediaSoupEventHandlerParams): MediaSoupEventHandler;
17
16
  createAudioObserverEventHandler(params: CreateMediaSoupEventHandlerParams): ChannelAudioObserverEventHandler;
18
17
  createChannelStateSyncEventHandler(params: ChannelStateSyncEventHandlerParams): ChannelStateSyncEventHandler;
19
- createChannelStateSynchronizer(params: ChannelStateSynchronizerParams): ChannelStateSynchronizer;
20
18
  createIssueDetector(params: CreateIssueDetectorParams): WebRTCIssueDetector;
21
19
  }
22
20
  export default DefaultEngineDependenciesFactory;
@@ -1,7 +1,6 @@
1
- import { ConsumerScoreChangedPayload, ProducerData, ProducerScoreChangedPayload, ConnectionQuality, PayloadOfPublishedMedia, PayloadOfUnpublishedMedia, ChangePreferredLayersPayload, Role, ProducerSetMaxSpatialLayer, PeerInfo, SubscribeOptions, PeerShortData } from '../types/common';
1
+ import { ProducerData, ConnectionQuality, PayloadOfPublishedMedia, Role, PeerInfo, SubscribeOptions } from '../types/common';
2
2
  import EnhancedEventEmitter from '../EnhancedEventEmitter';
3
3
  import Engine from './index';
4
- import { CHANNEL_EVENTS, MEDIASOUP_EVENTS, PEER_EVENTS } from '../constants/events';
5
4
  import PeerProducer from './PeerProducer';
6
5
  import PeerConsumer from './PeerConsumer';
7
6
  import PeerTrack from './media/tracks/PeerTrack';
@@ -24,31 +23,6 @@ export declare enum ScoreThreshold {
24
23
  MEDIUM = 6,
25
24
  GOOD = 10
26
25
  }
27
- export declare type PeerObserverEvents = {
28
- [PEER_EVENTS.mediaPublished]: [PayloadOfPublishedMedia];
29
- [PEER_EVENTS.appDataUpdated]: [Record<string, unknown>];
30
- [PEER_EVENTS.connectionQualityChanged]: [{
31
- connectionQuality: number;
32
- }];
33
- [PEER_EVENTS.publisherPaused]: [PayloadOfPublishedMedia];
34
- [PEER_EVENTS.publisherResumed]: [PayloadOfPublishedMedia];
35
- [PEER_EVENTS.mediaUnPublished]: [PayloadOfUnpublishedMedia];
36
- [PEER_EVENTS.trackStart]: [PeerTrack];
37
- [PEER_EVENTS.trackEnd]: [PeerTrack];
38
- [PEER_EVENTS.trackResumed]: [PeerTrack];
39
- [PEER_EVENTS.trackPaused]: [PeerTrack];
40
- [PEER_EVENTS.trackFailed]: [PeerTrack];
41
- [MEDIASOUP_EVENTS.producerClose]: [ProducerData];
42
- [MEDIASOUP_EVENTS.newProducer]: [ProducerData];
43
- [MEDIASOUP_EVENTS.closeConsumer]: [consumerId: string];
44
- [MEDIASOUP_EVENTS.pauseConsumer]: [consumerId: string];
45
- [MEDIASOUP_EVENTS.resumeConsumer]: [consumerId: string];
46
- [MEDIASOUP_EVENTS.consumerScoreChanged]: [ConsumerScoreChangedPayload];
47
- [MEDIASOUP_EVENTS.producerScoreChanged]: [ProducerScoreChangedPayload];
48
- [MEDIASOUP_EVENTS.consumerChangePreferredLayers]: [ChangePreferredLayersPayload];
49
- [MEDIASOUP_EVENTS.producerSetMaxSpatialLayer]: [ProducerSetMaxSpatialLayer];
50
- [CHANNEL_EVENTS.updatePeerAppData]: [Record<string, unknown>];
51
- };
52
26
  declare class Peer {
53
27
  id: string;
54
28
  channelIds: string[];
@@ -67,10 +41,9 @@ declare class Peer {
67
41
  private overallConnectionQuality;
68
42
  constructor({ id, channelIds, appId, loginDate, producers, engine, appData, uid, role, }: PeerConstructor);
69
43
  get appData(): Record<string, unknown>;
70
- get observer(): EnhancedEventEmitter<PeerObserverEvents>;
44
+ get observer(): EnhancedEventEmitter;
71
45
  get isMe(): boolean;
72
46
  get publishedMedia(): PayloadOfPublishedMedia[];
73
- get shortData(): PeerShortData;
74
47
  subscribe({ producerId, muted }: SubscribeOptions): Promise<void>;
75
48
  unsubscribe(producerId: string): Promise<void>;
76
49
  getInfo(): Promise<PeerInfo>;
@@ -2,13 +2,11 @@ interface ChannelStateConsistencyCheckResultsParams {
2
2
  missingPeers: string[];
3
3
  missingProducers: string[];
4
4
  producersWithInconsistentState: string[];
5
- peersWithInconsistentAppData: string[];
6
5
  }
7
6
  declare class ChannelStateConsistencyCheckResult {
8
7
  readonly missingPeers: string[];
9
8
  readonly missingProducers: string[];
10
9
  readonly producersWithInconsistentState: string[];
11
- readonly peersWithInconsistentAppData: string[];
12
10
  constructor(params: ChannelStateConsistencyCheckResultsParams);
13
11
  hasInconsistencyCases(): boolean;
14
12
  }
@@ -12,13 +12,11 @@ declare class ChannelStateConsistencyChecker {
12
12
  private missingPeers;
13
13
  private missingProducers;
14
14
  private producersWithInconsistentState;
15
- private peersWithInconsistentAppData;
16
15
  constructor(params: ChannelStateConsistencyCheckerParams);
17
16
  check(): ChannelStateConsistencyCheckResult;
18
17
  getMissingPeers(): string[];
19
18
  getMissingProducers(): string[];
20
19
  getProducersWithInconsistentState(): string[];
21
- getPeersWithInconsistentAppData(): string[];
22
20
  private findLocalPeerById;
23
21
  private findLocalProducerById;
24
22
  private resetPreviousCheckResults;
@@ -0,0 +1,4 @@
1
+ export declare const MAX_CHECK_RETRIES_BEFORE_CONFIRM = 4;
2
+ export declare const SIGNALING_PING_TIMEOUT = 1000;
3
+ export declare const BAD_NETWORK_SCORE = 2.6;
4
+ export declare const EXCELLENT_NETWORK_SCORE = 4.3;
@@ -1,14 +1,13 @@
1
1
  /// <reference types="node" />
2
- import { LogMessageHandler } from '../../../types/common';
3
- import Engine from '../../index';
2
+ import { ChannelStateSyncEventHandlerParams } from '../../../types/engine';
4
3
  declare class ChannelStateSyncEventHandler {
5
4
  #private;
6
5
  private readonly engine;
7
6
  private readonly logger;
8
- constructor(params: {
9
- engine: Engine;
10
- onLogMessage?: LogMessageHandler;
11
- });
7
+ private clientEventEmitter;
8
+ private webRTCIssueEmitter?;
9
+ private networkScores;
10
+ constructor(params: ChannelStateSyncEventHandlerParams);
12
11
  handle(payload: Buffer): Promise<void>;
13
12
  private handleChannelStateEvent;
14
13
  private getLastInconsistencyCheckResult;
@@ -21,10 +20,11 @@ declare class ChannelStateSyncEventHandler {
21
20
  private getConfirmedMissingPeers;
22
21
  private getConfirmedMissingProducers;
23
22
  private getConfirmedProducersWithInconsistencState;
24
- private getConfirmedPeersWithInconsistentAppData;
25
23
  private parseChannelStateSyncEventPayload;
26
24
  private getAllConfirmedInconsistentEntityIds;
27
25
  private getLocalState;
28
26
  private getIsConnectionActive;
27
+ private listenNetworkScoresUpdatedEvents;
28
+ private isBadNetworkScore;
29
29
  }
30
30
  export default ChannelStateSyncEventHandler;
@@ -0,0 +1,5 @@
1
+ export declare enum InconsistenceType {
2
+ MissingPeer = "missing-peer",
3
+ MissingProducer = "missing-producer",
4
+ IncorrectProducerState = "incorrect-producer-state"
5
+ }
@@ -1,16 +1,15 @@
1
- import { CreateCameraVideoTrackOptions, CreateMicrophoneAudioTrackOptions, CreateScreenMediaOptions, JoinChannelParams, LogLevel, LogMessageHandler, PeerResponse, Role } from '../types/common';
1
+ import { CreateCameraVideoTrackOptions, CreateMicrophoneAudioTrackOptions, CreateScreenMediaOptions, JoinChannelParams, PeerResponse, Role, LogMessageHandler, LogLevel } from '../types/common';
2
2
  import EnhancedEventEmitter from '../EnhancedEventEmitter';
3
3
  import System from './system';
4
4
  import Peer from './Peer';
5
5
  import Network from './network';
6
6
  import Media from './media';
7
7
  import VideoTrack from './media/tracks/DefaultVideoTrack';
8
- import { ClientObserverEvents, EngineDependenciesFactory, InternalObserverEvents, IssuesHandler, NetworkScoresUpdatedHandler, NodeActiveStreamsStat } from '../types/engine';
8
+ import { EngineDependenciesFactory, IssuesHandler, NetworkScoresUpdatedHandler, NodeActiveStreamsStat } from '../types/engine';
9
9
  import { LoadBalancerApiClientParams } from './network/LoadBalancerClient';
10
10
  import { MediaTracksFactory, AudioTrack, Track, BaseTrack, InitEffectsSDKParams } from '../types/media';
11
11
  declare type EngineParams = {
12
12
  clientEventEmitter: EnhancedEventEmitter;
13
- internalEventEmitter: EnhancedEventEmitter;
14
13
  network: {
15
14
  loadbalancer: LoadBalancerApiClientParams;
16
15
  };
@@ -26,20 +25,18 @@ declare type EngineParams = {
26
25
  effectsSDKParams?: InitEffectsSDKParams;
27
26
  };
28
27
  declare class Engine {
29
- #private;
30
28
  system: System;
31
29
  network: Network;
32
30
  media: Media;
33
- clientEventEmitter: EnhancedEventEmitter<ClientObserverEvents>;
34
- internalEventEmitter: EnhancedEventEmitter<InternalObserverEvents>;
31
+ clientEventEmitter: EnhancedEventEmitter;
35
32
  logLevel: LogLevel;
36
- readonly peersRepository: Map<string, Peer>;
33
+ private readonly peersRepository;
37
34
  private channelEventsHandler;
38
35
  private mediaSoupEventsHandler;
39
36
  private channelAudioObserverEventHandler;
40
37
  private channelStateSyncEventHandler;
41
- private channelStateSynchronizer;
42
38
  private initialized;
39
+ private isJoined;
43
40
  private app?;
44
41
  private channel?;
45
42
  private isChannelJoining;
@@ -55,7 +52,6 @@ declare class Engine {
55
52
  private readonly handleDataChannelEvent;
56
53
  private readonly handleChannelStateSyncEvent;
57
54
  constructor(params: EngineParams);
58
- get isChannelJoined(): boolean;
59
55
  private initialize;
60
56
  release(): Promise<void>;
61
57
  private removeClientEventEmitterListeners;
@@ -64,10 +60,9 @@ declare class Engine {
64
60
  get peers(): Peer[];
65
61
  get hostPeers(): Peer[];
66
62
  get audiencePeers(): Peer[];
67
- get myPeerId(): string | undefined;
68
- get isSocketConnectionActive(): boolean;
63
+ get mySocketId(): string | undefined;
69
64
  getPeerById(id: string): Peer | undefined;
70
- checkSocketConnectionActivity(): void;
65
+ checkConnectionActivity(): Promise<void>;
71
66
  confirmActivity(): Promise<void>;
72
67
  join(params: JoinChannelParams): Promise<void>;
73
68
  loadPeers(role?: Role): Promise<void>;
@@ -98,6 +93,5 @@ declare class Engine {
98
93
  private createGeneralDataConsumer;
99
94
  private createChannelStateSyncDataConsumer;
100
95
  private triggerRejoinEventIfAppropriate;
101
- private watchNetworkState;
102
96
  }
103
97
  export default Engine;
@@ -4,7 +4,6 @@ import { BaseTrackInfo, EncoderConfig, TrackLabel, TrackOutboundStats, TrackProd
4
4
  import Logger from '../../Logger';
5
5
  import EnhancedEventEmitter from '../../../EnhancedEventEmitter';
6
6
  import { BaseTrack, BaseTrackParams, ProducerAppData } from '../../../types/media';
7
- import { InternalObserverEvents } from '../../../types/engine';
8
7
  declare class DefaultBaseTrack implements BaseTrack {
9
8
  #private;
10
9
  protected encoderConfig: EncoderConfig;
@@ -20,7 +19,7 @@ declare class DefaultBaseTrack implements BaseTrack {
20
19
  get producerId(): string | undefined;
21
20
  get isPublished(): boolean;
22
21
  get isPaused(): boolean;
23
- get internalEventEmitter(): EnhancedEventEmitter<InternalObserverEvents>;
22
+ get clientEventEmitter(): EnhancedEventEmitter;
24
23
  getLabel(): TrackLabel;
25
24
  setLabel(label: TrackLabel): void;
26
25
  setEncoderConfig(encoderConfig: EncoderConfig): void;
@@ -1,6 +1,5 @@
1
1
  import { MediaKind } from 'mediasoup-client/lib/types';
2
2
  import { PreferredLayersParams, SpatialLayerParams, PeerTrackInfo, TrackLabel, LogMessageHandler } from '../../../types/common';
3
- import { PEER_EVENTS, TRACK_EVENTS } from '../../../constants/events';
4
3
  import PeerConsumer from '../../PeerConsumer';
5
4
  import Engine from '../../index';
6
5
  import EnhancedEventEmitter from '../../../EnhancedEventEmitter';
@@ -14,21 +13,11 @@ interface PeerTrackConstructor {
14
13
  peerEventEmitter: EnhancedEventEmitter;
15
14
  onLogMessage?: LogMessageHandler;
16
15
  }
17
- declare type PeerTrackObserverEvents = {
18
- [PEER_EVENTS.trackStart]: [PeerTrack];
19
- [PEER_EVENTS.trackEnd]: [PeerTrack];
20
- [TRACK_EVENTS.volumeChanged]: [{
21
- value: number;
22
- }];
23
- [PEER_EVENTS.trackFailed]: [PeerTrack];
24
- [PEER_EVENTS.trackPaused]: [PeerTrack];
25
- [PEER_EVENTS.trackResumed]: [PeerTrack];
26
- };
27
16
  declare class PeerTrack {
28
17
  #private;
29
18
  readonly label: TrackLabel;
30
19
  consumer?: PeerConsumer;
31
- readonly observer: EnhancedEventEmitter<PeerTrackObserverEvents>;
20
+ readonly observer: EnhancedEventEmitter;
32
21
  constructor(payload: PeerTrackConstructor);
33
22
  get volume(): number;
34
23
  get isRemote(): boolean;
@@ -6,7 +6,6 @@ export declare type SocketIOConstructorParams = {
6
6
  onLogMessage?: LogMessageHandler;
7
7
  };
8
8
  declare class SocketIO {
9
- #private;
10
9
  connection?: Socket;
11
10
  connectionError?: string;
12
11
  disconnectReason?: string;
@@ -2,10 +2,9 @@ import { IceParameters, Transport } from 'mediasoup-client/lib/Transport';
2
2
  import { Device } from 'mediasoup-client';
3
3
  import { DataConsumer } from 'mediasoup-client/lib/DataConsumer';
4
4
  import SocketIO from './Socket';
5
- import { CreateConsumerPayload, CreateConsumerResponse, LogLevel, LogMessageHandler, SocketResponse, TransportsStateInfo, UpdatePeerAppDataPayload, CreateDataConsumerPayload, TransportAppData, PeerResponse, Role } from '../../types/common';
5
+ import { CreateConsumerPayload, CreateConsumerResponse, LogLevel, LogMessageHandler, SocketResponse, TransportsStateInfo, UpdatePeerAppDataPayload, CreateDataConsumerPayload, TransportAppData } from '../../types/common';
6
6
  import LoadBalancerApiClient from './LoadBalancerClient';
7
7
  import EnhancedEventEmitter from '../../EnhancedEventEmitter';
8
- import { NetworkObserverEvents } from '../../types/network';
9
8
  export declare type NetworkParams = {
10
9
  socketClient: SocketIO;
11
10
  logLevel: LogLevel;
@@ -14,17 +13,16 @@ export declare type NetworkParams = {
14
13
  onLogMessage?: LogMessageHandler;
15
14
  };
16
15
  declare class Network {
17
- #private;
18
16
  readonly socket: SocketIO;
19
17
  readonly loadBalancerClient: LoadBalancerApiClient;
20
- peerId?: string;
18
+ readonly eventEmitter: EnhancedEventEmitter;
21
19
  sendTransport?: Transport<TransportAppData>;
22
20
  receiveTransport?: Transport<TransportAppData>;
23
21
  private preferRelay;
22
+ private sendTransportRestartIceInterval?;
23
+ private recvTransportRestartIceInterval?;
24
24
  private readonly logger;
25
25
  constructor(params: NetworkParams);
26
- get isNetworkActive(): boolean;
27
- get observer(): EnhancedEventEmitter<NetworkObserverEvents>;
28
26
  private removeEventListeners;
29
27
  reset(): Promise<void>;
30
28
  closeRemoteProducer(producerId: string): Promise<void>;
@@ -47,12 +45,8 @@ declare class Network {
47
45
  getTransportsStateInfo(): Promise<TransportsStateInfo>;
48
46
  setPreferRelay(value: boolean): void;
49
47
  getPreferRelay(): boolean;
50
- getChannelPeers(role?: Role): Promise<{
51
- peers: PeerResponse[];
52
- }>;
53
48
  private getParsedTransportStats;
54
49
  private logTransportDetails;
55
50
  private stopRestartIceAtempts;
56
- private subscribeCommonTransportEvents;
57
51
  }
58
52
  export default Network;
package/dist/index.d.ts CHANGED
@@ -2,11 +2,10 @@ import { AvailableMediaDevices, CreateCameraVideoTrackOptions, CreateMicrophoneA
2
2
  import EnhancedEventEmitter from './EnhancedEventEmitter';
3
3
  import Peer from './engine/Peer';
4
4
  import { LoadBalancerApiClientParams } from './engine/network/LoadBalancerClient';
5
- import { ClientObserverEvents, IssuesHandler, NetworkScoresUpdatedHandler, NodeActiveStreamsStat } from './types/engine';
5
+ import { IssuesHandler, NetworkScoresUpdatedHandler, NodeActiveStreamsStat } from './types/engine';
6
6
  import { AudioTrack, InitEffectsSDKParams, Track, VideoTrack } from './types/media';
7
7
  declare type ClientParams = {
8
- clientEventEmitter?: EnhancedEventEmitter;
9
- internalEventEmitter?: EnhancedEventEmitter;
8
+ observer?: EnhancedEventEmitter;
10
9
  network?: {
11
10
  loadbalancer?: LoadBalancerApiClientParams;
12
11
  };
@@ -19,10 +18,9 @@ declare type ClientParams = {
19
18
  };
20
19
  declare class Client {
21
20
  private readonly engine;
22
- private readonly _clientEventEmitter;
23
- private readonly _internalEventEmitter;
21
+ private readonly _observer;
24
22
  constructor(params: ClientParams);
25
- get observer(): EnhancedEventEmitter<ClientObserverEvents>;
23
+ get observer(): EnhancedEventEmitter;
26
24
  get id(): string | undefined;
27
25
  get peers(): Peer[];
28
26
  get availableVideoDevices(): MediaDeviceInfo[];