Google está empenhada em fazer avançar a equidade racial para as comunidades negras. Veja como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

conexões ponto

O RTCPeerConnection é a interface central na API WebRTC. Ela representa a conexão entre o mesmo nível local e remota, e provice todas as funções e eventos necessários para estabelecer a conexão.

Estabelecendo uma conexão ponto

Os pedidos de aplicação funcionalidade WebRTC geralmente dependem muito do RTCPeerConnection interface. Do lado da chamadores (isto é, a par iniciar uma conexão), o processo para estabelecer uma conexão é geralmente o seguinte:

  1. Criar um novo RTCPeerConnection instância com a configuração ICE apropriado.
  2. Criar uma descrição SDP local usando RTCPeerConnection.createOffer() .
  3. Definir a descrição SDP local usando RTCPeerConnection.setLocalDescription() .
  4. Transferência (usando um serviço de sinalização) a descrição SDP local para o peer remoto.
  5. Registrar um ouvinte para icecandidate eventos no RTCPeerConnection .
  6. Para cada icecandidate eventos, transferi-lo (usando um serviço de sinalização) para o peer remoto.
  7. Espere por uma descrição SDP remota de entrada do serviço de sinalização e configurá-lo usando RTCPeerConnection.setRemoteDescription() .
  8. Espere por candidatos ICE remoto de entrada do serviço de sinalização e adicioná-los usando RTCPeerConnection.addIceCandidate()

No lado do receptor, o processo é um pouco diferente.

  1. Criar um novo RTCPeerConnection instância com a configuração ICE apropriado.
  2. Espere por uma descrição SDP remota de entrada do serviço de sinalização e configurá-lo usando RTCPeerConnection.setRemoteDescription() .
  3. Criar uma resposta para a descrição SDP remota chamando RTCPeerConnection.createAnswer() .
  4. Transferência (usando um serviço de sinalização) a resposta ao ponto remoto.
  5. Registrar um ouvinte para icecandidate eventos no RTCPeerConnection .
  6. Para cada icecandidate eventos, transferi-lo (usando um serviço de sinalização) para o peer remoto.
  7. Espere por candidatos ICE remoto de entrada do serviço de sinalização e adicioná-los usando RTCPeerConnection.addIceCandidate()

O desafio com este API é que a maioria destas operações são assíncronas, que muitas vezes tornam a implementação real de uma aplicação WebRTC complicado. Muitas das funções retornar uma Promise que tem de ser resolvido antes que o próximo passo no processo pode continuar.

Recomenda-se que ao implementar um aplicativo usando esta API, o uso desenvolvedor marca de async e await em vez de registrar ouvintes (usando Promise.then() ), pois isso torna o código mais fácil de seguir. Considere o seguinte exemplo:

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

Ao escrever o código acima usando async e await , temos o seguinte:

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