Eventos de conexão entre colegas

Observação: Esse recurso está disponível apenas no SDK para JavaScript/TypeScript.

Quando uma chamada é iniciada ou recebida, o Client SDK cria um RTCPeerConnection internamente. O peerConnectionCreated O evento permite que você acesse esse objeto no momento em que ele é instanciado — antes do início da coleta do ICE — para que você possa se inscrever em quaisquer eventos do ciclo de vida do WebRTC que forem necessários.

Isso é útil para observar diagnósticos de conexão em nível detalhado, como o andamento da coleta de ICE, as transições no estado da conexão e a detecção de falhas.

client.on('peerConnectionCreated', (callId, pc) => {
  console.log(`Peer connection created for call ${callId}`);

  pc.addEventListener('connectionstatechange', () => {
    console.log(`[PC ${callId}] connectionState: ${pc.connectionState}`);
  });

  pc.addEventListener('iceconnectionstatechange', () => {
    console.log(
      `[PC ${callId}] iceConnectionState: ${pc.iceConnectionState}`
    );
  });

  pc.addEventListener('icegatheringstatechange', () => {
    console.log(`[PC ${callId}] iceGatheringState: ${pc.iceGatheringState}`);
  });
});

Disponibilidade do ID da chamada

Direção da chamada callId
Entrada Disponível — o ID da chamada já é conhecido antes do início da configuração da mídia
Saída null — o servidor ainda não atribuiu um ID no momento em que a conexão entre pares é estabelecida

Inscrição em eventos WebRTC

O trecho acima mostra como se inscrever no connectionstatechange, iceconnectionstatechange, e icegatheringstatechange. Esses são os eventos mais úteis para diagnosticar problemas de conectividade nas chamadas. A lista completa de RTCPeerConnection A seção de eventos está disponível no Documentação do MDN.

Coleta de estatísticas de qualidade das chamadas Para coletar métricas de qualidade em tempo real durante uma chamada, use pc.getStats() na conexão entre pares. Isso retorna estatísticas do WebRTC (jitter, perda de pacotes, tempo de ida e volta) que podem ajudar a diagnosticar problemas de qualidade de áudio. Consulte MDN RTCPeerConnection.getStats() para mais detalhes.