Dev.Lib
arrow_backBack to Blogs
LEVEL_088.7June 27, 20261 min read

WebRTC basics

Concurrency & Streams

P2P media/data via ICE/STUN/TURN for NAT traversal — signaling server sets up connection.

Summary

P2P media/data via ICE/STUN/TURN for NAT traversal — signaling server sets up connection. Not HTTP — separate security model (DTLS-SRTP). Frontend: getUserMedia permissions, connection state UI, bandwidth adaptation. TURN required when P2P fails.

Code example

const pc = new RTCPeerConnection({ iceServers: [{ urls: 'stun:stun.l.example.com' }] });
pc.addTrack(localStream.getTracks()[0]);
const offer = await pc.createOffer();
await pc.setLocalDescription(offer);
signaling.send({ type: 'offer', sdp: offer.sdp });

Key points

  • P2P media/data via ICE/STUN/TURN for NAT traversal — signaling server sets up connection.
  • Not HTTP — separate security model (DTLS-SRTP).
  • Frontend: getUserMedia permissions, connection state UI, bandwidth adaptation.
  • TURN required when P2P fails.

Further reading

Related concepts