@livedigital/client 2.4.0-beta.2 → 2.4.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.
Files changed (35) hide show
  1. package/README.md +1 -2
  2. package/package.json +1 -2
  3. package/src/engine/index.ts +13 -56
  4. package/src/engine/network/Socket.ts +4 -10
  5. package/dist/EnhancedEventEmitter.d.ts +0 -7
  6. package/dist/constants/events.d.ts +0 -54
  7. package/dist/constants/simulcastEncodings.d.ts +0 -9
  8. package/dist/constants/videoConstrains.d.ts +0 -18
  9. package/dist/engine/Logger.d.ts +0 -11
  10. package/dist/engine/Peer.d.ts +0 -56
  11. package/dist/engine/PeerConsumer.d.ts +0 -37
  12. package/dist/engine/PeerProducer.d.ts +0 -15
  13. package/dist/engine/handlers/ChannelEventHandler.d.ts +0 -8
  14. package/dist/engine/handlers/MediaSoupEventHandler.d.ts +0 -8
  15. package/dist/engine/index.d.ts +0 -58
  16. package/dist/engine/media/index.d.ts +0 -20
  17. package/dist/engine/media/tracks/AudioTrack.d.ts +0 -9
  18. package/dist/engine/media/tracks/BaseTrack.d.ts +0 -26
  19. package/dist/engine/media/tracks/PeerTrack.d.ts +0 -29
  20. package/dist/engine/media/tracks/TrackWithCodecOptions.d.ts +0 -4
  21. package/dist/engine/media/tracks/TrackWithEncodings.d.ts +0 -4
  22. package/dist/engine/media/tracks/VideoTrack.d.ts +0 -17
  23. package/dist/engine/network/LoadBalancerClient.d.ts +0 -13
  24. package/dist/engine/network/Socket.d.ts +0 -21
  25. package/dist/engine/network/index.d.ts +0 -24
  26. package/dist/engine/system/index.d.ts +0 -24
  27. package/dist/helpers/datetime.d.ts +0 -5
  28. package/dist/helpers/retry.d.ts +0 -10
  29. package/dist/index.d.ts +0 -32
  30. package/dist/index.es.js +0 -15
  31. package/dist/index.js +0 -15
  32. package/dist/types/common.d.ts +0 -211
  33. package/dist/types/network.d.ts +0 -8
  34. package/src/helpers/datetime.ts +0 -13
  35. package/src/helpers/retry.ts +0 -50
package/README.md CHANGED
@@ -30,8 +30,7 @@ There are three log severities:
30
30
  All the logs generated by LiveDigital client have a namespace starting with “LiveDigital” plus colon, followed by the log severity in upper case plus colon (just if “warn” or “error”), and followed by the internal component name (if any) and the log message.
31
31
 
32
32
  ### Enable Logging
33
- By default, logging is turned off. In order to enable it, the debug key in the browser's
34
- localStorage must be set.
33
+ By default, logging is turned off. In order to enable it, the debug key in the browser's localStorage must be set.
35
34
  >Check the [debug](https://www.npmjs.com/package/debug) module documentation for further information regarding how to filter specific log messages based on namespace matching rules.
36
35
 
37
36
  ### Example
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@livedigital/client",
3
3
  "author": "vlprojects",
4
4
  "license": "MIT",
5
- "version": "2.4.0-beta.2",
5
+ "version": "2.4.2",
6
6
  "private": false,
7
7
  "bugs": {
8
8
  "url": "https://github.com/vlprojects/livedigital-sdk/issues"
@@ -25,7 +25,6 @@
25
25
  "scripts": {
26
26
  "build": "rm -rf dist && rollup -c && tsc --importHelpers",
27
27
  "lint": "eslint ./src",
28
- "prepublish": "yarn lint && yarn test && yarn build",
29
28
  "test": "NODE_ENV=test mocha --config test/utils/runners/mocha/.mocharc.js"
30
29
  },
31
30
  "browserslist": {
@@ -26,7 +26,6 @@ import { GetNodeRequest } from '../types/network';
26
26
  import VideoTrack from './media/tracks/VideoTrack';
27
27
  import AudioTrack from './media/tracks/AudioTrack';
28
28
  import PeerTrack from './media/tracks/PeerTrack';
29
- import { retryAsync } from '../helpers/retry';
30
29
 
31
30
  type EngineParams = {
32
31
  clientEventEmitter: EnhancedEventEmitter,
@@ -119,7 +118,7 @@ class Engine {
119
118
  this.network.socket.observer.on('state', ({ state }: { state: SocketIOEvents }) => {
120
119
  this.clientEventEmitter.emit(state);
121
120
 
122
- if (state === SocketIOEvents.Reconnecting) {
121
+ if (state === SocketIOEvents.Reconnected) {
123
122
  this.network.socket.disconnect();
124
123
  this.clientEventEmitter.emit(CLIENT_EVENTS.channelRejoinRequired);
125
124
  }
@@ -146,7 +145,12 @@ class Engine {
146
145
  try {
147
146
  this.logger.debug('join()', { params });
148
147
  this.isRoomJoining = true;
149
- await this.connectToSocketServerWithRetry(params);
148
+ const { webSocketUrl } = await this.getAvailableNode({
149
+ channelId: params.channelId,
150
+ role: params.role,
151
+ });
152
+ this.network.socket.connect(webSocketUrl);
153
+ await this.waitForSocketConnection();
150
154
  await this.performJoin(params);
151
155
  } catch (error) {
152
156
  this.logger.error('join()', { error });
@@ -420,37 +424,6 @@ class Engine {
420
424
  return this.app;
421
425
  }
422
426
 
423
- private async connectToSocketServerWithRetry(params: { channelId: string, role: Role }): Promise<void> {
424
- const connectToSocketServerAction = async () => this.connectToSocketServer(params);
425
- return retryAsync(connectToSocketServerAction, {
426
- maxRetries: 15,
427
- minBackoffDelayMs: 150,
428
- maxBackoffDelayMs: 5_000,
429
- actionName: 'connectToSocketServer',
430
- });
431
- }
432
-
433
- private async connectToSocketServer(params: { channelId: string, role: Role }): Promise<void> {
434
- const { webSocketUrl } = await this.getAvailableNode({
435
- channelId: params.channelId,
436
- role: params.role,
437
- });
438
- this.network.socket.connect(webSocketUrl);
439
-
440
- try {
441
- await this.waitForSocketConnection();
442
- } catch (error: unknown) {
443
- this.logger.error('Failed to connect to socket server', {
444
- error,
445
- role: params.role,
446
- channelId: params.channelId,
447
- });
448
-
449
- this.network.socket.disconnect();
450
- throw error;
451
- }
452
- }
453
-
454
427
  private async getAvailableNode(params: GetNodeRequest): Promise<{ webSocketUrl: string }> {
455
428
  try {
456
429
  const response = await this.network.loadBalancerClient.getNode(params);
@@ -465,17 +438,14 @@ class Engine {
465
438
  return new Promise((resolve, reject) => {
466
439
  const onSocketStateChange = async (data: { state: SocketIOEvents, error?: string }) => {
467
440
  const { error, state } = data;
468
- const stopListening = () => this.network.socket.observer.removeListener('state', onSocketStateChange);
469
- const isStateNotExpected = [SocketIOEvents.Disconnected, SocketIOEvents.Reconnecting].includes(state);
470
-
471
- if (error || (this.isRoomJoining && isStateNotExpected)) {
472
- stopListening();
473
- reject(error || 'Not expected socket state for new connection');
441
+ if (error) {
442
+ this.network.socket.observer.removeListener('state', onSocketStateChange);
443
+ reject(error);
474
444
  return;
475
445
  }
476
446
 
477
- if (this.isRoomJoining && [SocketIOEvents.Connected, SocketIOEvents.Reconnected].includes(state)) {
478
- stopListening();
447
+ if (this.isRoomJoining && state === SocketIOEvents.Connected) {
448
+ this.network.socket.observer.removeListener('state', onSocketStateChange);
479
449
  resolve();
480
450
  }
481
451
  };
@@ -486,7 +456,7 @@ class Engine {
486
456
 
487
457
  private async performJoin(params: JoinChannelParams): Promise<void> {
488
458
  try {
489
- await this.sendJoinChannelRequestWithRetry(params);
459
+ await this.network.socket.request(CHANNEL_EVENTS.channelJoin, params);
490
460
  await this.initialize();
491
461
  this.channelEventsHandler.subscribeToEvents();
492
462
  this.mediaSoupEventsHandler.subscribeToEvents();
@@ -500,19 +470,6 @@ class Engine {
500
470
  }
501
471
  }
502
472
 
503
- private async sendJoinChannelRequestWithRetry(params: JoinChannelParams): Promise<SocketResponse> {
504
- const joinChannelAction = async () => this.sendJoinChannelRequest(params);
505
- return retryAsync(joinChannelAction, {
506
- maxRetries: 3,
507
- minBackoffDelayMs: 300,
508
- actionName: 'sendJoinChannelRequest',
509
- });
510
- }
511
-
512
- private async sendJoinChannelRequest(params: JoinChannelParams): Promise<SocketResponse> {
513
- return this.network.socket.request(CHANNEL_EVENTS.channelJoin, params);
514
- }
515
-
516
473
  get cahPublish(): boolean {
517
474
  return this.peers.find((item) => item.isMe)?.role === 'host';
518
475
  }
@@ -45,7 +45,7 @@ class SocketIO {
45
45
  : SocketIOEvents.Reconnected;
46
46
 
47
47
  this.isConnected = true;
48
- this.setReconnectingAttempt(0);
48
+ this.reconnectingAttempt = 0;
49
49
 
50
50
  this.logger.debug('connection.on(`connect`)');
51
51
  this.observer.safeEmit('state', { state });
@@ -59,14 +59,14 @@ class SocketIO {
59
59
 
60
60
  connection.on('disconnect', ((reason: string) => {
61
61
  this.isConnected = false;
62
- this.setReconnectingAttempt(0);
62
+ this.reconnectingAttempt = 0;
63
63
  this.disconnectReason = reason;
64
- this.logger.warn('connection.on(`disconnect`)', reason);
64
+ this.logger.error('connection.on(`disconnect`)', reason);
65
65
  this.observer.safeEmit('state', { state: SocketIOEvents.Disconnected });
66
66
  }));
67
67
 
68
68
  connection.io.on('reconnect_attempt', (attempt: number) => {
69
- this.setReconnectingAttempt(attempt);
69
+ this.reconnectingAttempt = attempt;
70
70
  this.logger.warn('connection.on(`reconnect_attempt`)', attempt);
71
71
  this.observer.safeEmit('state', { state: SocketIOEvents.Reconnecting });
72
72
  });
@@ -82,8 +82,6 @@ class SocketIO {
82
82
  this.connection.offAny();
83
83
  this.connection.volatile.offAny();
84
84
  this.connection.disconnect();
85
- // we need to reset this counter in order not to get Reconnected event on retry
86
- this.setReconnectingAttempt(0);
87
85
  }
88
86
  }
89
87
 
@@ -105,10 +103,6 @@ class SocketIO {
105
103
  });
106
104
  });
107
105
  }
108
-
109
- private setReconnectingAttempt(attemptNo: number): void {
110
- this.reconnectingAttempt = attemptNo;
111
- }
112
106
  }
113
107
 
114
108
  export default SocketIO;
@@ -1,7 +0,0 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- declare class EnhancedEventEmitter extends EventEmitter {
4
- constructor();
5
- safeEmit(event: string, ...args: unknown[]): boolean;
6
- }
7
- export default EnhancedEventEmitter;
@@ -1,54 +0,0 @@
1
- export declare const CHANNEL_EVENTS: {
2
- channelEvent: string;
3
- channelJoin: string;
4
- channelGetPeers: string;
5
- channelLeave: string;
6
- };
7
- export declare const CLIENT_EVENTS: {
8
- channelEvent: string;
9
- peerJoined: string;
10
- peerLeft: string;
11
- channelRejoinRequired: string;
12
- devicesListUpdated: string;
13
- };
14
- export declare const PEER_EVENTS: {
15
- mediaPublished: string;
16
- mediaUnPublished: string;
17
- connectionQualityChanged: string;
18
- trackStart: string;
19
- trackEnd: string;
20
- };
21
- export declare enum SocketIOEvents {
22
- Connected = "connected",
23
- Reconnecting = "reconnecting",
24
- Reconnected = "reconnected",
25
- Disconnected = "disconnected",
26
- Reconnect = "reconnect",
27
- Error = "error"
28
- }
29
- export declare const MEDIASOUP_EVENTS: {
30
- newProducer: string;
31
- producerClose: string;
32
- pauseProducer: string;
33
- resumeProducer: string;
34
- producerScoreChanged: string;
35
- producerSetMaxSpatialLayer: string;
36
- producerRequestMaxSpatialLayer: string;
37
- createConsumer: string;
38
- closeConsumer: string;
39
- pauseConsumer: string;
40
- resumeConsumer: string;
41
- consumerScoreChanged: string;
42
- consumerChangePreferredLayers: string;
43
- setConsumerPriority: string;
44
- transportCreate: string;
45
- transportClose: string;
46
- transportConnect: string;
47
- transportProduce: string;
48
- transportStateChange: string;
49
- transportGetIceParameters: string;
50
- };
51
- export declare const MEDIASOUP_TRANSPORT_EVENTS: {
52
- connect: string;
53
- produce: string;
54
- };
@@ -1,9 +0,0 @@
1
- export declare const WEBCAM_SIMULCAST_ENCODINGS: {
2
- scaleResolutionDownBy: number;
3
- maxBitrate: number;
4
- maxFramerate: number;
5
- }[];
6
- export declare const SCREEN_SHARING_SIMULCAST_ENCODINGS: {
7
- maxBitrate: number;
8
- dtx: boolean;
9
- }[];
@@ -1,18 +0,0 @@
1
- export declare const VIDEO_CONSTRAINS: {
2
- qvga: {
3
- width: number;
4
- height: number;
5
- };
6
- vga: {
7
- width: number;
8
- height: number;
9
- };
10
- hd: {
11
- width: number;
12
- height: number;
13
- };
14
- fullhd: {
15
- width: number;
16
- height: number;
17
- };
18
- };
@@ -1,11 +0,0 @@
1
- import debug from 'debug';
2
- declare class Logger {
3
- private readonly _debug;
4
- private readonly _warn;
5
- private readonly _error;
6
- constructor(prefix?: string);
7
- get debug(): debug.Debugger;
8
- get warn(): debug.Debugger;
9
- get error(): debug.Debugger;
10
- }
11
- export default Logger;
@@ -1,56 +0,0 @@
1
- import { ProducerData, ConnectionQuality, PayloadOfPublishedMedia, Role } from '../types/common';
2
- import EnhancedEventEmitter from '../EnhancedEventEmitter';
3
- import Engine from './index';
4
- import PeerProducer from './PeerProducer';
5
- import PeerConsumer from './PeerConsumer';
6
- import PeerTrack from './media/tracks/PeerTrack';
7
- interface PeerConstructor {
8
- id: string;
9
- channelIds: string[];
10
- appId: string;
11
- producers: ProducerData[];
12
- videoConsumer?: PeerConsumer;
13
- audioConsumer?: PeerConsumer;
14
- engine: Engine;
15
- soundLevel?: number;
16
- loginDate: Date;
17
- uid?: string;
18
- appData?: Record<string, unknown>;
19
- role: Role;
20
- }
21
- export declare enum ScoreThreshold {
22
- BAD = 4,
23
- MEDIUM = 6,
24
- GOOD = 10
25
- }
26
- declare class Peer {
27
- id: string;
28
- channelIds: string[];
29
- appId: string;
30
- loginDate: Date;
31
- uid?: string;
32
- appData: Record<string, unknown>;
33
- role: Role;
34
- private producers;
35
- readonly tracks: Map<string, PeerTrack>;
36
- private readonly engine;
37
- private readonly _observer;
38
- private readonly logger;
39
- private incomingConnectionQuality;
40
- private outgoingConnectionQuality;
41
- constructor({ id, channelIds, appId, loginDate, producers, engine, appData, uid, role, }: PeerConstructor);
42
- get observer(): EnhancedEventEmitter;
43
- get isMe(): boolean;
44
- get publishedMedia(): PayloadOfPublishedMedia[];
45
- subscribe(producerId: string): Promise<void>;
46
- private createConsumer;
47
- private handleNewProducer;
48
- private handlePeerEvents;
49
- private emitConnectionQuality;
50
- static getConnectionQualityByScore(score: number): ConnectionQuality;
51
- private getAllConsumers;
52
- getAllProducers(): PeerProducer[];
53
- getConsumerByProducerId(producerId: string): PeerConsumer | undefined;
54
- getConsumerById(id: string): PeerConsumer | undefined;
55
- }
56
- export default Peer;
@@ -1,37 +0,0 @@
1
- import { MediaKind, RtpEncodingParameters } from 'mediasoup-client/lib/RtpParameters';
2
- import { Consumer as MediasoupConsumer } from 'mediasoup-client/lib/types';
3
- import { ConsumerData, SpatialLayerParams } from '../types/common';
4
- declare class PeerConsumer {
5
- score: number;
6
- producerScore: number;
7
- spatialLayers: number;
8
- temporalLayers: number;
9
- currentSpatialLayer: number;
10
- currentTemporalLayer: number;
11
- requestedSpatialLayer?: number;
12
- currentMaxSpatialLayer: number;
13
- availableSpatialLayers: SpatialLayerParams[];
14
- currentSpatialLayerParams?: SpatialLayerParams;
15
- readonly id: string;
16
- readonly kind: MediaKind;
17
- readonly producerId: string;
18
- readonly appData: ConsumerData;
19
- private readonly consumer;
20
- private readonly logger;
21
- constructor(consumer: MediasoupConsumer);
22
- get paused(): boolean;
23
- pause(): void;
24
- resume(): void;
25
- close(): void;
26
- get isVideo(): boolean;
27
- get isAudio(): boolean;
28
- parseScalabilityMode(): void;
29
- setSpatialLayersParams(): void;
30
- setCurrentSpatialLayerParams(): void;
31
- parseSpatialLayerParams(encoding: RtpEncodingParameters): SpatialLayerParams;
32
- setCurrentSpatialLayer(currentSpatialLayer: number): void;
33
- setCurrentTemporalLayer(currentTemporalLayer: number): void;
34
- setRequestedSpatialLayer(spatialLayer: number | undefined): void;
35
- setCurrentMaxSpatialLayer(spatialLayer: number): void;
36
- }
37
- export default PeerConsumer;
@@ -1,15 +0,0 @@
1
- import { MediaKind } from 'mediasoup-client/lib/RtpParameters';
2
- import { RtpEncodingParameters } from 'mediasoup-client/lib/types';
3
- import { ProducerData, TrackLabel, TrackTransformParams } from '../types/common';
4
- declare class PeerProducer {
5
- readonly id: string;
6
- readonly kind: MediaKind;
7
- readonly peerId: string;
8
- readonly label: TrackLabel;
9
- readonly encodings: RtpEncodingParameters[];
10
- readonly trackTransformParams: TrackTransformParams;
11
- readonly maxSpatialLayer: number;
12
- score: number;
13
- constructor(params: ProducerData);
14
- }
15
- export default PeerProducer;
@@ -1,8 +0,0 @@
1
- import Engine from '../index';
2
- declare class ChannelEventHandler {
3
- private readonly engine;
4
- private readonly logger;
5
- constructor(engine: Engine);
6
- subscribeToEvents(): void;
7
- }
8
- export default ChannelEventHandler;
@@ -1,8 +0,0 @@
1
- import Engine from '../index';
2
- declare class MediaSoupEventHandler {
3
- private readonly engine;
4
- private readonly logger;
5
- constructor(engine: Engine);
6
- subscribeToEvents(): void;
7
- }
8
- export default MediaSoupEventHandler;
@@ -1,58 +0,0 @@
1
- import { CreateCameraVideoTrackOptions, CreateMicrophoneAudioTrackOptions, CreateScreenMediaOptions, JoinChannelParams, PeerResponse, Role, Track } from '../types/common';
2
- import EnhancedEventEmitter from '../EnhancedEventEmitter';
3
- import System from './system';
4
- import Peer from './Peer';
5
- import Network, { NetworkParams } from './network';
6
- import Media from './media';
7
- declare type EngineParams = {
8
- clientEventEmitter: EnhancedEventEmitter;
9
- network: NetworkParams;
10
- };
11
- declare class Engine {
12
- system: System;
13
- network: Network;
14
- media: Media;
15
- clientEventEmitter: EnhancedEventEmitter;
16
- private readonly peersRepository;
17
- private channelEventsHandler;
18
- private mediaSoupEventsHandler;
19
- private initialized;
20
- private isJoined;
21
- private app?;
22
- private channel?;
23
- private isRoomJoining;
24
- private logger;
25
- constructor(params: EngineParams);
26
- private initialize;
27
- release(): Promise<void>;
28
- private pauseRemoteProducer;
29
- private resumeRemoteProducer;
30
- private watchSocketState;
31
- get peers(): Peer[];
32
- get hostPeers(): Peer[];
33
- get audiencePeers(): Peer[];
34
- get mySocketId(): string | undefined;
35
- join(params: JoinChannelParams): Promise<void>;
36
- loadPeers(role?: Role): Promise<void>;
37
- setPeer(peerData: PeerResponse): Peer;
38
- removePeer(peerId: string): void;
39
- pause(track: Track): Promise<void>;
40
- resume(track: Track): Promise<void>;
41
- createCameraVideoTrack(options?: CreateCameraVideoTrackOptions): Promise<Track>;
42
- createMicrophoneAudioTrack(options?: CreateMicrophoneAudioTrackOptions): Promise<Track>;
43
- createScreenMediaTracks(options?: CreateScreenMediaOptions): Promise<Track[]>;
44
- publish(tracks: Track | Track[]): Promise<void>;
45
- unpublish(tracks?: Track | Track[]): Promise<void>;
46
- deleteTrack(tracks: Track): void;
47
- get channelId(): string | undefined;
48
- get appId(): string | undefined;
49
- private connectToSocketServerWithRetry;
50
- private connectToSocketServer;
51
- private getAvailableNode;
52
- private waitForSocketConnection;
53
- private performJoin;
54
- private sendJoinChannelRequestWithRetry;
55
- private sendJoinChannelRequest;
56
- get cahPublish(): boolean;
57
- }
58
- export default Engine;
@@ -1,20 +0,0 @@
1
- import { Device } from 'mediasoup-client';
2
- import { RtpCapabilities, RtpCodecCapability } from 'mediasoup-client/lib/RtpParameters';
3
- import { CreateScreenVideoTrackOptions, CreateVideoTrackParams, Track } from '../../types/common';
4
- declare class Media {
5
- #private;
6
- isDeviceLoaded: boolean;
7
- private device?;
8
- private tracks;
9
- get mediasoupDevice(): Device;
10
- loadDevice(routerRtpCapabilities: RtpCapabilities): Promise<void>;
11
- getTrackCodec(track: Track): RtpCodecCapability | undefined;
12
- private createTracks;
13
- createUserMediaTracks(constraints: MediaStreamConstraints): Promise<Track[]>;
14
- createDisplayMediaTracks(constraints: MediaStreamConstraints): Promise<Track[]>;
15
- deleteTrack(track: Track): void;
16
- getAllTracks(): Track[];
17
- static getScreenVideoTrackParams(options?: CreateScreenVideoTrackOptions): CreateVideoTrackParams;
18
- static getCameraVideoTrackParams(options?: CreateScreenVideoTrackOptions): CreateVideoTrackParams;
19
- }
20
- export default Media;
@@ -1,9 +0,0 @@
1
- import { ProducerCodecOptions } from 'mediasoup-client/lib/Producer';
2
- import { AudioEncoderConfig } from '../../../types/common';
3
- import BaseTrack from './BaseTrack';
4
- import TrackWithCodecOptions from './TrackWithCodecOptions';
5
- declare class AudioTrack extends BaseTrack implements TrackWithCodecOptions {
6
- getEncoderConfig(): AudioEncoderConfig;
7
- getCodecOptions(): ProducerCodecOptions;
8
- }
9
- export default AudioTrack;
@@ -1,26 +0,0 @@
1
- import { Producer } from 'mediasoup-client/lib/Producer';
2
- import { MediaKind } from 'mediasoup-client/lib/RtpParameters';
3
- import { EncoderConfig, TrackLabel } from '../../../types/common';
4
- import Logger from '../../Logger';
5
- declare class BaseTrack {
6
- #private;
7
- protected encoderConfig: EncoderConfig;
8
- private producer?;
9
- private label;
10
- protected logger: Logger;
11
- constructor(mediaStreamTrack: MediaStreamTrack);
12
- get mediaStreamTrack(): MediaStreamTrack;
13
- get id(): string;
14
- get kind(): MediaKind;
15
- get producerId(): string | undefined;
16
- get isPublished(): boolean;
17
- getLabel(): TrackLabel;
18
- setLabel(label: TrackLabel): void;
19
- setEncoderConfig(encoderConfig: EncoderConfig): void;
20
- getEncoderConfig(): EncoderConfig;
21
- setProducer(producer: Producer): void;
22
- getProducer(): Producer | undefined;
23
- closeProducer(): void;
24
- setPriority(priority: RTCPriorityType): Promise<void>;
25
- }
26
- export default BaseTrack;
@@ -1,29 +0,0 @@
1
- import { PreferredLayersParams, SpatialLayerParams, TrackLabel } from '../../../types/common';
2
- import PeerConsumer from '../../PeerConsumer';
3
- import Engine from '../../index';
4
- interface PeerTrackConstructor {
5
- mediaStreamTrack: MediaStreamTrack;
6
- label: TrackLabel;
7
- consumer?: PeerConsumer;
8
- engine: Engine;
9
- }
10
- declare class PeerTrack {
11
- #private;
12
- readonly mediaStreamTrack: MediaStreamTrack;
13
- readonly label: TrackLabel;
14
- readonly consumer?: PeerConsumer;
15
- constructor(payload: PeerTrackConstructor);
16
- get consumerId(): string | undefined;
17
- get currentSpatialLayer(): number;
18
- close(): void;
19
- pause(): Promise<void>;
20
- resume(): Promise<void>;
21
- setPriority(priority: number): Promise<void>;
22
- private setConsumerPriority;
23
- private pauseRemoteConsumer;
24
- private resumeRemoteConsumer;
25
- requestVideoPreferredLayers({ spatialLayer, temporalLayer }: PreferredLayersParams): Promise<void>;
26
- getVideoAvailableLayers(): SpatialLayerParams[] | undefined;
27
- private requestMaxSpatialLayer;
28
- }
29
- export default PeerTrack;
@@ -1,4 +0,0 @@
1
- import { ProducerCodecOptions } from 'mediasoup-client/lib/Producer';
2
- export default interface TrackWithCodecOptions {
3
- getCodecOptions(): ProducerCodecOptions;
4
- }
@@ -1,4 +0,0 @@
1
- import { RtpEncodingParameters } from 'mediasoup-client/lib/RtpParameters';
2
- export default interface TrackWithEncodings {
3
- getEncodings(): RtpEncodingParameters[];
4
- }
@@ -1,17 +0,0 @@
1
- import { ProducerCodecOptions } from 'mediasoup-client/lib/Producer';
2
- import { RtpEncodingParameters } from 'mediasoup-client/lib/RtpParameters';
3
- import { VideoCodec, VideoEncoderConfig } from '../../../types/common';
4
- import BaseTrack from './BaseTrack';
5
- import TrackWithCodecOptions from './TrackWithCodecOptions';
6
- import TrackWithEncodings from './TrackWithEncodings';
7
- declare class VideoTrack extends BaseTrack implements TrackWithCodecOptions, TrackWithEncodings {
8
- transformParams: {};
9
- getEncoderConfig(): VideoEncoderConfig;
10
- getCodecOptions(): ProducerCodecOptions;
11
- getPreferredCodec(): VideoCodec;
12
- getEncodings(): RtpEncodingParameters[];
13
- setTransformParams(transformParams: {}): void;
14
- setMaxSpatialLayer(spatialLayer: number): Promise<void>;
15
- getMaxSpatialLayer(): number | undefined;
16
- }
17
- export default VideoTrack;
@@ -1,13 +0,0 @@
1
- import { GetNodeRequest, GetNodeResponse } from '../../types/network';
2
- export declare type LoadBalancerApiClientParams = {
3
- baseURL?: string;
4
- timeout?: number;
5
- customNode?: GetNodeResponse;
6
- };
7
- declare class LoadBalancerApiClient {
8
- private readonly api;
9
- private customNode?;
10
- constructor(params: LoadBalancerApiClientParams);
11
- getNode(params: GetNodeRequest): Promise<GetNodeResponse>;
12
- }
13
- export default LoadBalancerApiClient;
@@ -1,21 +0,0 @@
1
- import { Socket } from 'socket.io-client';
2
- import EnhancedEventEmitter from '../../EnhancedEventEmitter';
3
- import { SocketResponse } from '../../types/common';
4
- declare class SocketIO {
5
- connection?: Socket;
6
- connectionError?: string;
7
- disconnectReason?: string;
8
- reconnectingAttempt: number;
9
- private serverUrl?;
10
- private isConnected;
11
- private readonly _observer;
12
- private readonly logger;
13
- constructor();
14
- get observer(): EnhancedEventEmitter;
15
- get id(): string | undefined;
16
- connect(serverUrl: string): void;
17
- disconnect(): void;
18
- request(type: string, data?: {}): Promise<SocketResponse>;
19
- private setReconnectingAttempt;
20
- }
21
- export default SocketIO;