fix: recurriing network issue
Queue Release Build / prepare (push) Successful in 18s
Deploy Web Apps / deploy (push) Successful in 6m32s
Queue Release Build / build-windows (push) Successful in 26m8s
Queue Release Build / build-linux (push) Successful in 40m18s
Queue Release Build / finalize (push) Successful in 42s

This commit is contained in:
2026-04-30 04:04:34 +02:00
parent b1fe286be8
commit a49e18b9f0
16 changed files with 522 additions and 17 deletions
@@ -399,6 +399,7 @@ export class WebRTCService implements OnDestroy {
*/
broadcastMessage(event: ChatEvent): void {
this.peerMediaFacade.broadcastMessage(event);
this.relayBroadcastEvent(event);
}
/**
@@ -430,6 +431,12 @@ export class WebRTCService implements OnDestroy {
return this.peerMediaFacade.getConnectedPeerIds();
}
hasSignalingRouteForPeer(peerId: string): boolean {
const signalUrl = this.signalingCoordinator.getPeerSignalUrl(peerId);
return !!signalUrl && this.signalingCoordinator.isSignalingConnectedTo(signalUrl);
}
/**
* Get the composite remote {@link MediaStream} for a connected peer.
*
@@ -658,6 +665,26 @@ export class WebRTCService implements OnDestroy {
this.peerMediaFacade.stopScreenShare();
}
private relayBroadcastEvent(event: ChatEvent): void {
if (event.type === 'chat-message' && event.message?.roomId) {
this.signalingTransportHandler.sendRawMessage({
type: 'chat_message',
serverId: event.message.roomId,
message: event.message
});
return;
}
if (event.type === 'voice-state' && event.voiceState?.serverId) {
this.signalingTransportHandler.sendRawMessage({
...event,
type: 'voice_state',
serverId: event.voiceState.serverId
});
}
}
/** Disconnect from the signaling server and clean up all state. */
disconnect(): void {
this.leaveRoom();