feat: signal server tag

This commit is contained in:
2026-06-05 06:16:02 +02:00
parent 6865147e8f
commit bf4e6891d1
69 changed files with 2808 additions and 1269 deletions
@@ -74,6 +74,9 @@ export class WebRTCService implements OnDestroy {
private readonly signalingMessage$ = new Subject<IncomingSignalingMessage>();
readonly onSignalingMessage = this.signalingMessage$.asObservable();
private readonly signalingReconnectedSubject$ = new Subject<string>();
readonly signalingReconnected$ = this.signalingReconnectedSubject$.asObservable();
// Delegates to managers
get onMessageReceived(): Observable<ChatEvent> {
return this.peerMediaFacade.onMessageReceived;
@@ -132,8 +135,8 @@ export class WebRTCService implements OnDestroy {
getLastJoinedServer,
getMemberServerIds
),
handleConnectionStatus: (_signalUrl, connected, errorMessage) =>
this.handleSignalingConnectionStatus(connected, errorMessage),
handleConnectionStatus: (signalUrl, connected, errorMessage) =>
this.handleSignalingConnectionStatus(signalUrl, connected, errorMessage),
handleHeartbeatTick: () => this.peerMediaFacade.broadcastCurrentStates(),
handleMessage: (message, signalUrl) => this.handleSignalingMessage(message, signalUrl)
});
@@ -247,12 +250,16 @@ export class WebRTCService implements OnDestroy {
);
}
private handleSignalingConnectionStatus(connected: boolean, errorMessage?: string): void {
private handleSignalingConnectionStatus(signalUrl: string, connected: boolean, errorMessage?: string): void {
this.state.updateSignalingConnectionStatus(
this.signalingCoordinator.isAnySignalingConnected(),
connected ? true : this.signalingCoordinator.isAnySignalingConnected(),
connected,
errorMessage
);
if (connected) {
this.signalingReconnectedSubject$.next(signalUrl);
}
}
private handleSignalingMessage(message: IncomingSignalingMessage, signalUrl: string): void {
@@ -341,7 +348,7 @@ export class WebRTCService implements OnDestroy {
oderId: string,
displayName: string,
signalUrl?: string,
profile?: { description?: string; profileUpdatedAt?: number }
profile?: { description?: string; profileUpdatedAt?: number; homeSignalServerUrl?: string }
): void {
this.signalingTransportHandler.identify(oderId, displayName, signalUrl, profile);
}