Google jest zaangażowana w pogłębianie równości rasowej dla czarnych społecznościach. Zobacz jak.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

peer

RTCPeerConnection to centralny interfejs w API WebRTC. Stanowi on połączenie pomiędzy każdym lokalnym i zdalnym, a provice wszystkich funkcji i zdarzeń niezbędne do nawiązania połączenia.

Nawiązanie połączenia rówieśników

Aplikacje wykonawcze funkcjonalność WebRTC zazwyczaj w dużym stopniu polegają na RTCPeerConnection interfejsu. Od strony rozmówców (czyli peer zainicjowanie połączenia), proces, aby nawiązać połączenie jest zwykle następujący:

  1. Utwórz nowy RTCPeerConnection instancję odpowiedniej konfiguracji ICE.
  2. Tworzenie lokalnego opisu SDP przy użyciu RTCPeerConnection.createOffer() .
  3. Ustaw lokalnego opisu SDP przy użyciu RTCPeerConnection.setLocalDescription() .
  4. Transfer (za pomocą usługi sygnalizacji) Lokalny opisu SDP do zdalnego każdym.
  5. Zarejestrować detektor icecandidate wydarzeń na RTCPeerConnection .
  6. Dla każdego icecandidate zdarzeń, przenieść go (za pomocą usługi sygnalizacji) do zdalnego każdym.
  7. Poczekaj na przychodzącego zdalnego opisu SDP z serwisu sygnalizacji i ustawić go przy użyciu RTCPeerConnection.setRemoteDescription() .
  8. Poczekaj na przychodzących zdalnego ICE kandydatów z serwisu sygnalizacji i dodać je za pomocą RTCPeerConnection.addIceCandidate()

Po stronie odbierającego, proces ten jest nieco inny.

  1. Utwórz nowy RTCPeerConnection instancję odpowiedniej konfiguracji ICE.
  2. Poczekaj na przychodzącego zdalnego opisu SDP z serwisu sygnalizacji i ustawić go przy użyciu RTCPeerConnection.setRemoteDescription() .
  3. Utwórz odpowiedź na pilocie zdalnego opisu SDP wywołując RTCPeerConnection.createAnswer() .
  4. Transfer (za pomocą usługi sygnalizacji) odpowiedź na zdalnym komputerze równorzędnym.
  5. Zarejestrować detektor icecandidate wydarzeń na RTCPeerConnection .
  6. Dla każdego icecandidate zdarzeń, przenieść go (za pomocą usługi sygnalizacji) do zdalnego każdym.
  7. Poczekaj na przychodzących zdalnego ICE kandydatów z serwisu sygnalizacji i dodać je za pomocą RTCPeerConnection.addIceCandidate()

Wyzwanie z tego API jest, że większość z tych operacji są asynchroniczne, które często sprawiają, że rzeczywiste wdrażanie aplikacji WebRTC skomplikowane. Wiele funkcji zwróci Promise , który musi zostać rozwiązany przed kolejnym krokiem w tym procesie może być kontynuowana.

Zaleca się, aby podczas wdrażania aplikacji przy użyciu tego API, korzystanie make deweloper async i await zamiast rejestracji słuchaczy (używając Promise.then() ), a to sprawia, że kod łatwiejsze do naśladowania. Rozważmy następujący przykład:

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

Pisząc powyższy kod używając async i await , otrzymujemy następujące:

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