Stop connections on view model destroy

This commit is contained in:
Robin
2025-09-26 13:20:55 -04:00
parent 0759f9b27d
commit dbdf853d55
3 changed files with 21 additions and 9 deletions

View File

@@ -55,6 +55,7 @@ export class Connection {
}
public stop(): void {
if (this.stopped) return;
void this.livekitRoom.disconnect();
this.stopped = true;
}
@@ -117,6 +118,8 @@ export class Connection {
this.connectionState$ = this.scope.behavior<ConnectionState>(
connectionStateObserver(this.livekitRoom),
);
this.scope.onEnd(() => this.stop());
}
}
@@ -137,11 +140,6 @@ export class PublishConnection extends Connection {
}
}
public stop(): void {
void this.livekitRoom.disconnect();
this.stopped = true;
}
public constructor(
focus: LivekitFocus,
livekitAlias: string,
@@ -220,7 +218,10 @@ export class PublishConnection extends Connection {
}
return this.livekitRoom.localParticipant.isCameraEnabled;
});
// TODO-MULTI-SFU: Unset mute state handlers on destroy
this.scope.onEnd(() => {
this.muteStates.audio.unsetHandler();
this.muteStates.video.unsetHandler();
});
const syncDevice = (
kind: MediaDeviceKind,