Skip to content

refactor(webstreams): decompose WebRtcClient into focused services#165

Draft
imaTik0 wants to merge 1 commit intofix/streaming-protocolfrom
refactor/webstreams-di
Draft

refactor(webstreams): decompose WebRtcClient into focused services#165
imaTik0 wants to merge 1 commit intofix/streaming-protocolfrom
refactor/webstreams-di

Conversation

@imaTik0
Copy link
Copy Markdown
Member

@imaTik0 imaTik0 commented Apr 17, 2026

Splits the 750-line monolithic WebRtcClient into ten single-responsibility services (PublisherManager, SubscriberManager, DataChannelSession, KeySyncManager, PeerConnectionFactory, PeerConnectionManager, E2eeWorker, E2eeTransformManager, AudioManager,
RemoteStreamListenerRegistry). WebRtcClient becomes a thin facade.

Circular dependencies (PeerConnectionManager→WebRtcClient trickle, PeerConnectionFactory→SubscriberManager.onRemoteTrack, E2eeWorker→AudioManager RMS callback) are broken by resolving lazily inside callback closures in EndpointFactory.createStreamApi.

StreamApiNative now takes WebRtcInterfaceImpl directly; bindApiInterface wiring is done in EndpointFactory. Removes dead files: WebWorkerHelper, WebRtcConfig, WebRtcClientTypes, PeerConnectionsManager, Utils.

Splits the 750-line monolithic WebRtcClient into ten single-responsibility
services (PublisherManager, SubscriberManager, DataChannelSession,
KeySyncManager, PeerConnectionFactory, PeerConnectionManager,
E2eeWorker, E2eeTransformManager, AudioManager,
RemoteStreamListenerRegistry). WebRtcClient becomes a thin facade.

Circular dependencies (PeerConnectionManager→WebRtcClient trickle,
PeerConnectionFactory→SubscriberManager.onRemoteTrack,
E2eeWorker→AudioManager RMS callback) are broken by resolving lazily
inside callback closures in EndpointFactory.createStreamApi.

StreamApiNative now takes WebRtcInterfaceImpl directly; bindApiInterface
wiring is done in EndpointFactory. Removes dead files: WebWorkerHelper,
WebRtcConfig, WebRtcClientTypes, PeerConnectionsManager, Utils.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant