A short dialogue exploring whether WebRTC is peer-to-peer or client–server. Speakers conclude "yes" — WebRTC can be both: it supports direct browser-to-browser connections but in practice many deployments use servers (TURN relays, SFU/MCU media servers) and signaling servers for SDP exchange. One speaker notes current usage trends leaning toward server-mediated flows (citing Chrome telemetry of ~50% server-mediated), and they mention trade-offs (full-mesh vs SFU) and that every WebRTC endpoint can act as both client and server from a networking view.
Chapters
Is WebRTC peer to peer or client to server?
The answer is yes, it is both.
What does that mean?
It does support establishing a direct connection between two different browsers. Yes, but that's no longer the majority of the usage these days. These days it's mostly talking to the server. I think the numbers are at least 50% from what I see in Chrome.
I think it also depends how you actually go and define peer to peer and client to server. Because let's look at peer to peer. With WebRTC, I still need the server in order to send the SDP messages to connect my call to someone else, even if the call is going to be peer to peer. I mean, they're going from one client to another. Now, even in peer to peer, I might go through a turn server, so the browsers are going to be clients to that turn server or whatever. You want to look at that. And then if you're in a group call and there is an SFU or an MCU media servers, then again you're working from a client to a server. Now, the funny thing also is, how do you define client and server? Usually it's the way that the client is the one opening the connection to the server, which is the host. But in WebRTC, I can do it both ways. Every WebRTC client is both a client and a server. When you look at it from a networking perspective.
Yes.
So the answer is yes to everything here in a way.
Yes. Yes. I think Emil Ivoff had a great cranky geek talk. I think in 2015, 10 years ago, maybe it's been a while.
Yeah.
Yes. But I mean, what we currently see is people saying, oh, webc is peer to peer, that sucks. And then they're probably talking about full mesh, which it's like, yes, full mesh sucks. We've known for a decade.
For me, people say, well, WebRTC sucks. Here's our WebRTC solution to solve that. WebRTC sucks. It is still WebRTC, so that's fine.