TechLead
Avanzado
35 min
Guía completa

Señalización en WebRTC

Aprende cómo funciona la señalización y el intercambio de ofertas, respuestas y candidatos ICE

¿Qué es la señalización?

WebRTC no define el canal de señalización. Necesitas un servidor (WebSocket/HTTP) para intercambiar SDP offers/answers y ICE candidates.

Flujo básico

  1. Cliente A crea la oferta (offer)
  2. Envía offer al servidor de señalización
  3. Cliente B recibe offer y responde con answer
  4. Ambos intercambian ICE candidates

Offer/Answer

// En el emisor
const offer = await pc.createOffer();
await pc.setLocalDescription(offer);
signal.send({ type: 'offer', sdp: offer });

// En el receptor
await pc.setRemoteDescription(offer);
const answer = await pc.createAnswer();
await pc.setLocalDescription(answer);
signal.send({ type: 'answer', sdp: answer });

ICE Candidates

pc.onicecandidate = (event) => {
  if (event.candidate) {
    signal.send({ type: 'candidate', candidate: event.candidate });
  }
};

// Recibir candidate
await pc.addIceCandidate(candidate);

⚠️ Recomendaciones

  • • Autentica usuarios en el canal de señalización
  • • Maneja reintentos y reconexión
  • • Registra métricas de fallos ICE