Google se compromete a avanzar en la equidad racial para las comunidades negras. Ver cómo.
Esta página se ha traducido con Cloud Translation API.
Switch to English

conexiones entre pares

El RTCPeerConnection es la interfaz central en el API WebRTC. Representa la conexión entre los pares locales y remotos, y Provice todas las funciones y los eventos necesarios para establecer la conexión.

El establecimiento de una conexión entre pares

Aplicaciones que implementan la función WebRTC por lo general dependen en gran medida del RTCPeerConnection interfaz. Por el lado de las personas que llaman (es decir, el par de iniciar una conexión), el proceso de establecer una conexión suele ser el siguiente:

  1. Crear un nuevo RTCPeerConnection ejemplo con la configuración ICE apropiado.
  2. Crear una descripción SDP local utilizando RTCPeerConnection.createOffer() .
  3. Establecer la descripción SDP local utilizando RTCPeerConnection.setLocalDescription() .
  4. Transfer (mediante un servicio de señalización) la descripción SDP local al par remoto.
  5. El registro de un oyente para icecandidate eventos en el RTCPeerConnection .
  6. Para cada icecandidate eventos, la transferencia (mediante un servicio de señalización) al par remoto.
  7. Esperar una descripción SDP remoto de entrada del servicio de señalización y configurarlo usando RTCPeerConnection.setRemoteDescription() .
  8. Espere a que los candidatos ICE remoto de entrada desde el servicio de señalización y añadirlos usando RTCPeerConnection.addIceCandidate()

En el lado del abonado llamado, el proceso es un poco diferente.

  1. Crear un nuevo RTCPeerConnection ejemplo con la configuración ICE apropiado.
  2. Esperar una descripción SDP remoto de entrada del servicio de señalización y configurarlo usando RTCPeerConnection.setRemoteDescription() .
  3. Crear una respuesta para la descripción SDP remoto llamando RTCPeerConnection.createAnswer() .
  4. Transfer (mediante un servicio de señalización) la respuesta a la par remoto.
  5. El registro de un oyente para icecandidate eventos en el RTCPeerConnection .
  6. Para cada icecandidate eventos, la transferencia (mediante un servicio de señalización) al par remoto.
  7. Espere a que los candidatos ICE remoto de entrada desde el servicio de señalización y añadirlos usando RTCPeerConnection.addIceCandidate()

El reto con esta API es que la mayoría de estas operaciones son asíncronas, que a menudo hacen la implementación real de una aplicación de WebRTC complicado. Muchas de las funciones devuelven una Promise que tiene que ser resuelto antes de que el siguiente paso en el proceso puede continuar.

Se recomienda que cuando se implementa una aplicación que utiliza esta API, el uso de maquillaje desarrollador async y await en lugar de registrarse oyentes (usando Promise.then() ), ya que esto hace que el código sea más fácil de seguir. Consideremos el siguiente ejemplo:

 function createAndSendOffer(peerConnection, signallingService) {
    peerConnection.createOffer()
                  .then(offer => {
                      signallingService.send({
                          type: 'offer',
                          data: offer
                      });
                  });
}
 

Al escribir el código anterior utilizando async y await , obtenemos lo siguiente:

 async function createAndSendOffer(peerConnection, signallingService) {
    const offer = await peerConnection.createOffer();
    signallingService.send({
        type: 'offer',
        data: offer
    });
}