livekit-client 1.15.7 → 1.15.9
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/livekit-client.esm.mjs +79 -38
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/src/api/SignalClient.d.ts +1 -0
- package/dist/src/api/SignalClient.d.ts.map +1 -1
- package/dist/src/proto/livekit_rtc_pb.d.ts +16 -0
- package/dist/src/proto/livekit_rtc_pb.d.ts.map +1 -1
- package/dist/src/room/PCTransportManager.d.ts.map +1 -1
- package/dist/src/room/RTCEngine.d.ts.map +1 -1
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/timers.d.ts +5 -4
- package/dist/src/room/timers.d.ts.map +1 -1
- package/dist/src/room/types.d.ts +1 -1
- package/dist/src/room/types.d.ts.map +1 -1
- package/dist/ts4.2/src/api/SignalClient.d.ts +1 -0
- package/dist/ts4.2/src/proto/livekit_rtc_pb.d.ts +16 -0
- package/dist/ts4.2/src/room/timers.d.ts +5 -4
- package/dist/ts4.2/src/room/types.d.ts +1 -1
- package/package.json +1 -1
- package/src/api/SignalClient.ts +22 -2
- package/src/proto/livekit_rtc_pb.ts +18 -0
- package/src/room/PCTransportManager.ts +1 -0
- package/src/room/RTCEngine.ts +22 -5
- package/src/room/Room.ts +34 -38
- package/src/room/participant/LocalParticipant.ts +2 -0
- package/src/room/types.ts +3 -1
package/src/room/Room.ts
CHANGED
@@ -772,6 +772,30 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
772
772
|
// @ts-expect-error function is private
|
773
773
|
await this.engine.client.handleOnClose('simulate resume-disconnect');
|
774
774
|
break;
|
775
|
+
case 'disconnect-signal-on-resume':
|
776
|
+
postAction = async () => {
|
777
|
+
// @ts-expect-error function is private
|
778
|
+
await this.engine.client.handleOnClose('simulate resume-disconnect');
|
779
|
+
};
|
780
|
+
req = new SimulateScenario({
|
781
|
+
scenario: {
|
782
|
+
case: 'disconnectSignalOnResume',
|
783
|
+
value: true,
|
784
|
+
},
|
785
|
+
});
|
786
|
+
break;
|
787
|
+
case 'disconnect-signal-on-resume-no-messages':
|
788
|
+
postAction = async () => {
|
789
|
+
// @ts-expect-error function is private
|
790
|
+
await this.engine.client.handleOnClose('simulate resume-disconnect');
|
791
|
+
};
|
792
|
+
req = new SimulateScenario({
|
793
|
+
scenario: {
|
794
|
+
case: 'disconnectSignalOnResumeNoMessages',
|
795
|
+
value: true,
|
796
|
+
},
|
797
|
+
});
|
798
|
+
break;
|
775
799
|
case 'full-reconnect':
|
776
800
|
this.engine.fullReconnectOnNext = true;
|
777
801
|
// @ts-expect-error function is private
|
@@ -808,11 +832,12 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
808
832
|
},
|
809
833
|
});
|
810
834
|
break;
|
835
|
+
|
811
836
|
default:
|
812
837
|
}
|
813
838
|
if (req) {
|
814
|
-
this.engine.client.sendSimulateScenario(req);
|
815
|
-
postAction();
|
839
|
+
await this.engine.client.sendSimulateScenario(req);
|
840
|
+
await postAction();
|
816
841
|
}
|
817
842
|
}
|
818
843
|
|
@@ -1142,40 +1167,7 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
1142
1167
|
|
1143
1168
|
try {
|
1144
1169
|
// unpublish & republish tracks
|
1145
|
-
|
1146
|
-
this.localParticipant.tracks.forEach((pub) => {
|
1147
|
-
if (pub.track) {
|
1148
|
-
localPubs.push(pub);
|
1149
|
-
}
|
1150
|
-
});
|
1151
|
-
|
1152
|
-
await Promise.all(
|
1153
|
-
localPubs.map(async (pub) => {
|
1154
|
-
const track = pub.track!;
|
1155
|
-
this.localParticipant.unpublishTrack(track, false);
|
1156
|
-
if (!track.isMuted) {
|
1157
|
-
if (
|
1158
|
-
(track instanceof LocalAudioTrack || track instanceof LocalVideoTrack) &&
|
1159
|
-
track.source !== Track.Source.ScreenShare &&
|
1160
|
-
track.source !== Track.Source.ScreenShareAudio &&
|
1161
|
-
!track.isUserProvided
|
1162
|
-
) {
|
1163
|
-
// we need to restart the track before publishing, often a full reconnect
|
1164
|
-
// is necessary because computer had gone to sleep.
|
1165
|
-
this.log.debug('restarting existing track', {
|
1166
|
-
...this.logContext,
|
1167
|
-
track: pub.trackSid,
|
1168
|
-
});
|
1169
|
-
await track.restartTrack();
|
1170
|
-
}
|
1171
|
-
this.log.debug('publishing new track', {
|
1172
|
-
...this.logContext,
|
1173
|
-
track: pub.trackSid,
|
1174
|
-
});
|
1175
|
-
await this.localParticipant.publishTrack(track, pub.options);
|
1176
|
-
}
|
1177
|
-
}),
|
1178
|
-
);
|
1170
|
+
await this.localParticipant.republishAllTracks(undefined, true);
|
1179
1171
|
} catch (error) {
|
1180
1172
|
this.log.error('error trying to re-publish tracks after reconnection', {
|
1181
1173
|
...this.logContext,
|
@@ -1681,6 +1673,10 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
1681
1673
|
this.log.warn('detected connection state mismatch', {
|
1682
1674
|
...this.logContext,
|
1683
1675
|
numFailures: consecutiveFailures,
|
1676
|
+
engine: {
|
1677
|
+
closed: this.engine.isClosed,
|
1678
|
+
transportsConnected: this.engine.verifyTransport(),
|
1679
|
+
},
|
1684
1680
|
});
|
1685
1681
|
if (consecutiveFailures >= 3) {
|
1686
1682
|
this.recreateEngine();
|
@@ -1832,7 +1828,7 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
1832
1828
|
await window.navigator.mediaDevices.getUserMedia({ video: true })
|
1833
1829
|
).getVideoTracks()[0]
|
1834
1830
|
: createDummyVideoStreamTrack(
|
1835
|
-
160 * participantOptions.aspectRatios[0] ?? 1,
|
1831
|
+
160 * (participantOptions.aspectRatios[0] ?? 1),
|
1836
1832
|
160,
|
1837
1833
|
true,
|
1838
1834
|
true,
|
@@ -1882,7 +1878,7 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
1882
1878
|
const p = this.getOrCreateParticipant(info.identity, info);
|
1883
1879
|
if (participantOptions.video) {
|
1884
1880
|
const dummyVideo = createDummyVideoStreamTrack(
|
1885
|
-
160 * participantOptions.aspectRatios[i % participantOptions.aspectRatios.length] ?? 1,
|
1881
|
+
160 * (participantOptions.aspectRatios[i % participantOptions.aspectRatios.length] ?? 1),
|
1886
1882
|
160,
|
1887
1883
|
false,
|
1888
1884
|
true,
|
@@ -1109,6 +1109,8 @@ export default class LocalParticipant extends Participant {
|
|
1109
1109
|
if (
|
1110
1110
|
restartTracks &&
|
1111
1111
|
!track.isMuted &&
|
1112
|
+
track.source !== Track.Source.ScreenShare &&
|
1113
|
+
track.source !== Track.Source.ScreenShareAudio &&
|
1112
1114
|
(track instanceof LocalAudioTrack || track instanceof LocalVideoTrack) &&
|
1113
1115
|
!track.isUserProvided
|
1114
1116
|
) {
|
package/src/room/types.ts
CHANGED
@@ -40,7 +40,9 @@ export type SimulationScenario =
|
|
40
40
|
// overrides server-side bandwidth estimator with set bandwidth
|
41
41
|
// this can be used to test application behavior when congested or
|
42
42
|
// to disable congestion control entirely (by setting bandwidth to 100Mbps)
|
43
|
-
| 'subscriber-bandwidth'
|
43
|
+
| 'subscriber-bandwidth'
|
44
|
+
| 'disconnect-signal-on-resume'
|
45
|
+
| 'disconnect-signal-on-resume-no-messages';
|
44
46
|
|
45
47
|
export type LoggerOptions = {
|
46
48
|
loggerName?: string;
|