mediasoup-client 3.6.52 → 3.6.53
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/lib/Consumer.d.ts +16 -18
- package/lib/Consumer.d.ts.map +1 -1
- package/lib/Consumer.js +3 -17
- package/lib/DataConsumer.d.ts +13 -15
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/DataConsumer.js +0 -13
- package/lib/DataProducer.d.ts +13 -15
- package/lib/DataProducer.d.ts.map +1 -1
- package/lib/DataProducer.js +0 -13
- package/lib/Device.d.ts +4 -6
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +0 -5
- package/lib/EnhancedEventEmitter.d.ts +19 -3
- package/lib/EnhancedEventEmitter.d.ts.map +1 -1
- package/lib/EnhancedEventEmitter.js +50 -14
- package/lib/Producer.d.ts +29 -22
- package/lib/Producer.d.ts.map +1 -1
- package/lib/Producer.js +18 -28
- package/lib/Transport.d.ts +40 -18
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +14 -25
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +3 -1
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +3 -1
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +3 -1
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +3 -1
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +3 -1
- package/lib/handlers/FakeHandler.d.ts +2 -2
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +3 -1
- package/lib/handlers/HandlerInterface.d.ts +12 -10
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/HandlerInterface.js +0 -8
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +3 -1
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +3 -1
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +3 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/Consumer.ts +30 -20
- package/src/DataConsumer.ts +19 -16
- package/src/DataProducer.ts +19 -16
- package/src/Device.ts +6 -6
- package/src/EnhancedEventEmitter.ts +105 -22
- package/src/Producer.ts +91 -31
- package/src/Transport.ts +73 -39
- package/src/handlers/Chrome55.ts +9 -1
- package/src/handlers/Chrome67.ts +9 -1
- package/src/handlers/Chrome70.ts +9 -1
- package/src/handlers/Chrome74.ts +9 -1
- package/src/handlers/Edge11.ts +9 -1
- package/src/handlers/FakeHandler.ts +4 -3
- package/src/handlers/Firefox60.ts +9 -1
- package/src/handlers/HandlerInterface.ts +14 -10
- package/src/handlers/ReactNative.ts +9 -1
- package/src/handlers/Safari11.ts +9 -1
- package/src/handlers/Safari12.ts +9 -1
- package/src/utils.ts +0 -1
package/src/Transport.ts
CHANGED
|
@@ -9,7 +9,10 @@ import { Producer, ProducerOptions } from './Producer';
|
|
|
9
9
|
import { Consumer, ConsumerOptions } from './Consumer';
|
|
10
10
|
import { DataProducer, DataProducerOptions } from './DataProducer';
|
|
11
11
|
import { DataConsumer, DataConsumerOptions } from './DataConsumer';
|
|
12
|
-
import {
|
|
12
|
+
import { RtpParameters, MediaKind } from './RtpParameters';
|
|
13
|
+
import { SctpParameters, SctpStreamParameters } from './SctpParameters';
|
|
14
|
+
|
|
15
|
+
const logger = new Logger('Transport');
|
|
13
16
|
|
|
14
17
|
interface InternalTransportOptions extends TransportOptions
|
|
15
18
|
{
|
|
@@ -29,7 +32,7 @@ class ConsumerCreationTask
|
|
|
29
32
|
constructor(consumerOptions: ConsumerOptions)
|
|
30
33
|
{
|
|
31
34
|
this.consumerOptions = consumerOptions;
|
|
32
|
-
this.promise = new Promise((resolve, reject) =>
|
|
35
|
+
this.promise = new Promise<Consumer>((resolve, reject) =>
|
|
33
36
|
{
|
|
34
37
|
this.resolve = resolve;
|
|
35
38
|
this.reject = reject;
|
|
@@ -148,9 +151,43 @@ export type PlainRtpParameters =
|
|
|
148
151
|
port: number;
|
|
149
152
|
};
|
|
150
153
|
|
|
151
|
-
|
|
154
|
+
export type TransportEvents =
|
|
155
|
+
{
|
|
156
|
+
connect: [{ dtlsParameters: DtlsParameters }, () => void, (error: Error) => void];
|
|
157
|
+
connectionstatechange: [ConnectionState];
|
|
158
|
+
produce:
|
|
159
|
+
[
|
|
160
|
+
{
|
|
161
|
+
kind: MediaKind;
|
|
162
|
+
rtpParameters: RtpParameters;
|
|
163
|
+
appData: Record<string, unknown>;
|
|
164
|
+
},
|
|
165
|
+
({ id }: { id: string }) => void,
|
|
166
|
+
(error: Error) => void
|
|
167
|
+
];
|
|
168
|
+
producedata:
|
|
169
|
+
[
|
|
170
|
+
{
|
|
171
|
+
sctpStreamParameters: SctpStreamParameters;
|
|
172
|
+
label?: string;
|
|
173
|
+
protocol?: string;
|
|
174
|
+
appData: Record<string, unknown>;
|
|
175
|
+
},
|
|
176
|
+
({ id }: { id: string }) => void,
|
|
177
|
+
(error: Error) => void
|
|
178
|
+
];
|
|
179
|
+
};
|
|
152
180
|
|
|
153
|
-
export
|
|
181
|
+
export type TransportObserverEvents =
|
|
182
|
+
{
|
|
183
|
+
close: [];
|
|
184
|
+
newproducer: [Producer];
|
|
185
|
+
newconsumer: [Consumer];
|
|
186
|
+
newdataproducer: [DataProducer];
|
|
187
|
+
newdataconsumer: [DataConsumer];
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
export class Transport extends EnhancedEventEmitter<TransportEvents>
|
|
154
191
|
{
|
|
155
192
|
// Id.
|
|
156
193
|
private readonly _id: string;
|
|
@@ -196,14 +233,8 @@ export class Transport extends EnhancedEventEmitter
|
|
|
196
233
|
// Consumer resume in progress flag.
|
|
197
234
|
private _consumerResumeInProgress = false;
|
|
198
235
|
// Observer instance.
|
|
199
|
-
protected readonly _observer = new EnhancedEventEmitter();
|
|
236
|
+
protected readonly _observer = new EnhancedEventEmitter<TransportObserverEvents>();
|
|
200
237
|
|
|
201
|
-
/**
|
|
202
|
-
* @emits connect - (transportLocalParameters: any, callback: Function, errback: Function)
|
|
203
|
-
* @emits connectionstatechange - (connectionState: ConnectionState)
|
|
204
|
-
* @emits produce - (producerLocalParameters: any, callback: Function, errback: Function)
|
|
205
|
-
* @emits producedata - (dataProducerLocalParameters: any, callback: Function, errback: Function)
|
|
206
|
-
*/
|
|
207
238
|
constructor(
|
|
208
239
|
{
|
|
209
240
|
direction,
|
|
@@ -321,15 +352,6 @@ export class Transport extends EnhancedEventEmitter
|
|
|
321
352
|
throw new Error('cannot override appData object');
|
|
322
353
|
}
|
|
323
354
|
|
|
324
|
-
/**
|
|
325
|
-
* Observer.
|
|
326
|
-
*
|
|
327
|
-
* @emits close
|
|
328
|
-
* @emits newproducer - (producer: Producer)
|
|
329
|
-
* @emits newconsumer - (producer: Producer)
|
|
330
|
-
* @emits newdataproducer - (dataProducer: DataProducer)
|
|
331
|
-
* @emits newdataconsumer - (dataProducer: DataProducer)
|
|
332
|
-
*/
|
|
333
355
|
get observer(): EnhancedEventEmitter
|
|
334
356
|
{
|
|
335
357
|
return this._observer;
|
|
@@ -530,13 +552,19 @@ export class Transport extends EnhancedEventEmitter
|
|
|
530
552
|
// This will fill rtpParameters's missing fields with default values.
|
|
531
553
|
ortc.validateRtpParameters(rtpParameters);
|
|
532
554
|
|
|
533
|
-
const { id } = await
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
555
|
+
const { id } = await new Promise<{ id: string }>((resolve, reject) =>
|
|
556
|
+
{
|
|
557
|
+
this.safeEmit(
|
|
558
|
+
'produce',
|
|
559
|
+
{
|
|
560
|
+
kind : track.kind as MediaKind,
|
|
561
|
+
rtpParameters,
|
|
562
|
+
appData
|
|
563
|
+
},
|
|
564
|
+
resolve,
|
|
565
|
+
reject
|
|
566
|
+
);
|
|
567
|
+
});
|
|
540
568
|
|
|
541
569
|
const producer = new Producer(
|
|
542
570
|
{
|
|
@@ -692,14 +720,20 @@ export class Transport extends EnhancedEventEmitter
|
|
|
692
720
|
// This will fill sctpStreamParameters's missing fields with default values.
|
|
693
721
|
ortc.validateSctpStreamParameters(sctpStreamParameters);
|
|
694
722
|
|
|
695
|
-
const { id } = await
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
723
|
+
const { id } = await new Promise<{ id: string }>((resolve, reject) =>
|
|
724
|
+
{
|
|
725
|
+
this.safeEmit(
|
|
726
|
+
'producedata',
|
|
727
|
+
{
|
|
728
|
+
sctpStreamParameters,
|
|
729
|
+
label,
|
|
730
|
+
protocol,
|
|
731
|
+
appData
|
|
732
|
+
},
|
|
733
|
+
resolve,
|
|
734
|
+
reject
|
|
735
|
+
);
|
|
736
|
+
});
|
|
703
737
|
|
|
704
738
|
const dataProducer =
|
|
705
739
|
new DataProducer({ id, dataChannel, sctpStreamParameters, appData });
|
|
@@ -983,8 +1017,8 @@ export class Transport extends EnhancedEventEmitter
|
|
|
983
1017
|
|
|
984
1018
|
handler.on('@connect', (
|
|
985
1019
|
{ dtlsParameters }: { dtlsParameters: DtlsParameters },
|
|
986
|
-
callback:
|
|
987
|
-
errback:
|
|
1020
|
+
callback: () => void,
|
|
1021
|
+
errback: (error: Error) => void
|
|
988
1022
|
) =>
|
|
989
1023
|
{
|
|
990
1024
|
if (this._closed)
|
|
@@ -1058,7 +1092,7 @@ export class Transport extends EnhancedEventEmitter
|
|
|
1058
1092
|
producer.on('@getstats', (callback, errback) =>
|
|
1059
1093
|
{
|
|
1060
1094
|
if (this._closed)
|
|
1061
|
-
return errback(new InvalidStateError('closed'));
|
|
1095
|
+
return errback!(new InvalidStateError('closed'));
|
|
1062
1096
|
|
|
1063
1097
|
this._handler.getSenderStats(producer.localId)
|
|
1064
1098
|
.then(callback)
|
|
@@ -1122,7 +1156,7 @@ export class Transport extends EnhancedEventEmitter
|
|
|
1122
1156
|
consumer.on('@getstats', (callback, errback) =>
|
|
1123
1157
|
{
|
|
1124
1158
|
if (this._closed)
|
|
1125
|
-
return errback(new InvalidStateError('closed'));
|
|
1159
|
+
return errback!(new InvalidStateError('closed'));
|
|
1126
1160
|
|
|
1127
1161
|
this._handler.getReceiverStats(consumer.localId)
|
|
1128
1162
|
.then(callback)
|
package/src/handlers/Chrome55.ts
CHANGED
|
@@ -816,7 +816,15 @@ export class Chrome55 extends HandlerInterface
|
|
|
816
816
|
localDtlsRole === 'client' ? 'server' : 'client');
|
|
817
817
|
|
|
818
818
|
// Need to tell the remote transport about our parameters.
|
|
819
|
-
await
|
|
819
|
+
await new Promise<void>((resolve, reject) =>
|
|
820
|
+
{
|
|
821
|
+
this.safeEmit(
|
|
822
|
+
'@connect',
|
|
823
|
+
{ dtlsParameters },
|
|
824
|
+
resolve,
|
|
825
|
+
reject
|
|
826
|
+
);
|
|
827
|
+
});
|
|
820
828
|
|
|
821
829
|
this._transportReady = true;
|
|
822
830
|
}
|
package/src/handlers/Chrome67.ts
CHANGED
|
@@ -901,7 +901,15 @@ export class Chrome67 extends HandlerInterface
|
|
|
901
901
|
localDtlsRole === 'client' ? 'server' : 'client');
|
|
902
902
|
|
|
903
903
|
// Need to tell the remote transport about our parameters.
|
|
904
|
-
await
|
|
904
|
+
await new Promise<void>((resolve, reject) =>
|
|
905
|
+
{
|
|
906
|
+
this.safeEmit(
|
|
907
|
+
'@connect',
|
|
908
|
+
{ dtlsParameters },
|
|
909
|
+
resolve,
|
|
910
|
+
reject
|
|
911
|
+
);
|
|
912
|
+
});
|
|
905
913
|
|
|
906
914
|
this._transportReady = true;
|
|
907
915
|
}
|
package/src/handlers/Chrome70.ts
CHANGED
|
@@ -909,7 +909,15 @@ export class Chrome70 extends HandlerInterface
|
|
|
909
909
|
localDtlsRole === 'client' ? 'server' : 'client');
|
|
910
910
|
|
|
911
911
|
// Need to tell the remote transport about our parameters.
|
|
912
|
-
await
|
|
912
|
+
await new Promise<void>((resolve, reject) =>
|
|
913
|
+
{
|
|
914
|
+
this.safeEmit(
|
|
915
|
+
'@connect',
|
|
916
|
+
{ dtlsParameters },
|
|
917
|
+
resolve,
|
|
918
|
+
reject
|
|
919
|
+
);
|
|
920
|
+
});
|
|
913
921
|
|
|
914
922
|
this._transportReady = true;
|
|
915
923
|
}
|
package/src/handlers/Chrome74.ts
CHANGED
|
@@ -950,7 +950,15 @@ export class Chrome74 extends HandlerInterface
|
|
|
950
950
|
localDtlsRole === 'client' ? 'server' : 'client');
|
|
951
951
|
|
|
952
952
|
// Need to tell the remote transport about our parameters.
|
|
953
|
-
await
|
|
953
|
+
await new Promise<void>((resolve, reject) =>
|
|
954
|
+
{
|
|
955
|
+
this.safeEmit(
|
|
956
|
+
'@connect',
|
|
957
|
+
{ dtlsParameters },
|
|
958
|
+
resolve,
|
|
959
|
+
reject
|
|
960
|
+
);
|
|
961
|
+
});
|
|
954
962
|
|
|
955
963
|
this._transportReady = true;
|
|
956
964
|
}
|
package/src/handlers/Edge11.ts
CHANGED
|
@@ -605,7 +605,15 @@ export class Edge11 extends HandlerInterface
|
|
|
605
605
|
dtlsParameters.role = localDtlsRole;
|
|
606
606
|
|
|
607
607
|
// Need to tell the remote transport about our parameters.
|
|
608
|
-
await
|
|
608
|
+
await new Promise<void>((resolve, reject) =>
|
|
609
|
+
{
|
|
610
|
+
this.safeEmit(
|
|
611
|
+
'@connect',
|
|
612
|
+
{ dtlsParameters },
|
|
613
|
+
resolve,
|
|
614
|
+
reject
|
|
615
|
+
);
|
|
616
|
+
});
|
|
609
617
|
|
|
610
618
|
// Start the RTCIceTransport.
|
|
611
619
|
this._iceTransport.start(
|
|
@@ -18,7 +18,8 @@ import {
|
|
|
18
18
|
import {
|
|
19
19
|
IceParameters,
|
|
20
20
|
DtlsParameters,
|
|
21
|
-
DtlsRole
|
|
21
|
+
DtlsRole,
|
|
22
|
+
ConnectionState
|
|
22
23
|
} from '../Transport';
|
|
23
24
|
import { RtpCapabilities, RtpParameters } from '../RtpParameters';
|
|
24
25
|
import { SctpCapabilities } from '../SctpParameters';
|
|
@@ -126,7 +127,7 @@ export class FakeHandler extends HandlerInterface
|
|
|
126
127
|
}
|
|
127
128
|
|
|
128
129
|
// NOTE: Custom method for simulation purposes.
|
|
129
|
-
setConnectionState(connectionState:
|
|
130
|
+
setConnectionState(connectionState: ConnectionState): void
|
|
130
131
|
{
|
|
131
132
|
this.emit('@connectionstatechange', connectionState);
|
|
132
133
|
}
|
|
@@ -422,7 +423,7 @@ export class FakeHandler extends HandlerInterface
|
|
|
422
423
|
this.emit('@connectionstatechange', 'connecting');
|
|
423
424
|
|
|
424
425
|
// Need to tell the remote transport about our parameters.
|
|
425
|
-
await new Promise((resolve, reject) => (
|
|
426
|
+
await new Promise<void>((resolve, reject) => (
|
|
426
427
|
this.emit('@connect', { dtlsParameters }, resolve, reject)
|
|
427
428
|
));
|
|
428
429
|
|
|
@@ -931,7 +931,15 @@ export class Firefox60 extends HandlerInterface
|
|
|
931
931
|
localDtlsRole === 'client' ? 'server' : 'client');
|
|
932
932
|
|
|
933
933
|
// Need to tell the remote transport about our parameters.
|
|
934
|
-
await
|
|
934
|
+
await new Promise<void>((resolve, reject) =>
|
|
935
|
+
{
|
|
936
|
+
this.safeEmit(
|
|
937
|
+
'@connect',
|
|
938
|
+
{ dtlsParameters },
|
|
939
|
+
resolve,
|
|
940
|
+
reject
|
|
941
|
+
);
|
|
942
|
+
});
|
|
935
943
|
|
|
936
944
|
this._transportReady = true;
|
|
937
945
|
}
|
|
@@ -3,7 +3,8 @@ import { ProducerCodecOptions } from '../Producer';
|
|
|
3
3
|
import {
|
|
4
4
|
IceParameters,
|
|
5
5
|
IceCandidate,
|
|
6
|
-
DtlsParameters
|
|
6
|
+
DtlsParameters,
|
|
7
|
+
ConnectionState
|
|
7
8
|
} from '../Transport';
|
|
8
9
|
import {
|
|
9
10
|
RtpCapabilities,
|
|
@@ -82,16 +83,19 @@ export type HandlerReceiveDataChannelResult =
|
|
|
82
83
|
dataChannel: RTCDataChannel;
|
|
83
84
|
}
|
|
84
85
|
|
|
85
|
-
export
|
|
86
|
+
export type HandlerEvents =
|
|
87
|
+
{
|
|
88
|
+
'@connect':
|
|
89
|
+
[
|
|
90
|
+
{ dtlsParameters: DtlsParameters },
|
|
91
|
+
() => void,
|
|
92
|
+
(error: Error) => void
|
|
93
|
+
];
|
|
94
|
+
'@connectionstatechange': [ConnectionState];
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export abstract class HandlerInterface extends EnhancedEventEmitter<HandlerEvents>
|
|
86
98
|
{
|
|
87
|
-
/**
|
|
88
|
-
* @emits @connect - (
|
|
89
|
-
* { dtlsParameters: DtlsParameters },
|
|
90
|
-
* callback: Function,
|
|
91
|
-
* errback: Function
|
|
92
|
-
* )
|
|
93
|
-
* @emits @connectionstatechange - (connectionState: ConnectionState)
|
|
94
|
-
*/
|
|
95
99
|
constructor()
|
|
96
100
|
{
|
|
97
101
|
super();
|
|
@@ -836,7 +836,15 @@ export class ReactNative extends HandlerInterface
|
|
|
836
836
|
localDtlsRole === 'client' ? 'server' : 'client');
|
|
837
837
|
|
|
838
838
|
// Need to tell the remote transport about our parameters.
|
|
839
|
-
await
|
|
839
|
+
await new Promise<void>((resolve, reject) =>
|
|
840
|
+
{
|
|
841
|
+
this.safeEmit(
|
|
842
|
+
'@connect',
|
|
843
|
+
{ dtlsParameters },
|
|
844
|
+
resolve,
|
|
845
|
+
reject
|
|
846
|
+
);
|
|
847
|
+
});
|
|
840
848
|
|
|
841
849
|
this._transportReady = true;
|
|
842
850
|
}
|
package/src/handlers/Safari11.ts
CHANGED
|
@@ -894,7 +894,15 @@ export class Safari11 extends HandlerInterface
|
|
|
894
894
|
localDtlsRole === 'client' ? 'server' : 'client');
|
|
895
895
|
|
|
896
896
|
// Need to tell the remote transport about our parameters.
|
|
897
|
-
await
|
|
897
|
+
await new Promise<void>((resolve, reject) =>
|
|
898
|
+
{
|
|
899
|
+
this.safeEmit(
|
|
900
|
+
'@connect',
|
|
901
|
+
{ dtlsParameters },
|
|
902
|
+
resolve,
|
|
903
|
+
reject
|
|
904
|
+
);
|
|
905
|
+
});
|
|
898
906
|
|
|
899
907
|
this._transportReady = true;
|
|
900
908
|
}
|
package/src/handlers/Safari12.ts
CHANGED
|
@@ -900,7 +900,15 @@ export class Safari12 extends HandlerInterface
|
|
|
900
900
|
localDtlsRole === 'client' ? 'server' : 'client');
|
|
901
901
|
|
|
902
902
|
// Need to tell the remote transport about our parameters.
|
|
903
|
-
await
|
|
903
|
+
await new Promise<void>((resolve, reject) =>
|
|
904
|
+
{
|
|
905
|
+
this.safeEmit(
|
|
906
|
+
'@connect',
|
|
907
|
+
{ dtlsParameters },
|
|
908
|
+
resolve,
|
|
909
|
+
reject
|
|
910
|
+
);
|
|
911
|
+
});
|
|
904
912
|
|
|
905
913
|
this._transportReady = true;
|
|
906
914
|
}
|