Signaling
Create rooms, authorize members, exchange transport parameters, and coordinate lifecycle events.
An SFU receives encoded media from each producer and forwards selected streams to consumers. It avoids the full decode-and-mix cost of an MCU while giving the application control over subscriptions, layouts, recording inputs, and quality layers.
Signaling controls the session. Secure WebRTC transports carry media. The SFU forwards the streams and quality layers each receiver needs.
Signaling establishes intent and permissions; WebRTC transports carry encrypted media; the SFU routes streams; the application decides who receives what.
| Topology | Best fit | Main tradeoff | Media control |
|---|---|---|---|
| P2P | One-to-one calls and very small sessions | Each participant sends media to every other participant | Application-owned |
| SFU | Interactive rooms, broadcasts, recording, and real-time AI | Requires server routing, capacity planning, and observability | Server selects and forwards streams |
| MCU | A single precomposed output or legacy endpoints | Server decodes and mixes media, increasing compute cost | Server composes the final stream |
Create rooms, authorize members, exchange transport parameters, and coordinate lifecycle events.
Publish audio, video, or screen tracks and create consumers only for the streams a participant needs.
Apply roles, pagination, recording rules, moderation, webhooks, and UI state outside the SFU core.
The useful sequence is workload, ownership, media path, and proof. Starting with a UI framework skips the decisions that determine reliability and cost.
Define roles, limits, media defaults, and the events your client must observe.
Negotiate secure WebRTC connectivity and retain TURN as a fallback for restrictive networks.
Send producer tracks once and subscribe each participant to the appropriate streams and layers.
Recover from reconnects, paused tracks, device changes, participant exits, and worker movement.
mediasoup is an independent, signaling-agnostic open-source SFU. MediaSFU builds a managed platform around that routing foundation; it does not rename the upstream project or erase the responsibilities your application still owns.
Read the official mediasoup overviewNormally it forwards encoded RTP streams and selected quality layers. Decoding and composition are separate workloads used when a mixed output is required.
WebRTC does not prescribe an application signaling protocol. The product layer coordinates rooms, permissions, transports, producers, consumers, and lifecycle events.
TURN provides a relay path when direct client-to-SFU connectivity is blocked by restrictive NAT or firewall behavior.