Benzer bağlantılar

RTCPeerConnection, WebRTC API'nin merkezi arayüzüdür. Google iş yeri ile uzaktaki iş ortağı arasındaki bağlantıyı temsil eder ve gerekli işlevleri ve etkinlikleri içerir.

Eş bağlantısı kurma

WebRTC işlevini uygulayan uygulamalar genellikle RTCPeerConnection arayüzü. Arayanlar tarafında (yani, sizinle benzer bağlantı kurmadan başlar) bağlantı kurma süreci genellikle takip etmek için:

  1. Uygun ICE ile yeni bir RTCPeerConnection örneği oluşturun yapılandırma.
  2. RTCPeerConnection.createOffer() kullanarak yerel SDP açıklaması oluşturun.
  3. Yerel SDP açıklamasını şunu kullanarak ayarlayın: RTCPeerConnection.setLocalDescription()
  4. Yerel SDP açıklamasını uzaktan kumandaya aktarın (bir sinyal hizmeti kullanarak) empatiyle yaklaşır.
  5. RTCPeerConnection üzerindeki icecandidate etkinlikleri için bir işleyici kaydedin.
  6. Her icecandidate etkinliği için bunu şu hesaba aktarın (bir sinyal hizmeti kullanarak). empatiyle yaklaşmak çok önemlidir.
  7. Sinyal hizmetinden gelen uzak SDP açıklamasını bekleyin ve RTCPeerConnection.setRemoteDescription() ile ayarlayabilirsiniz.
  8. Sinyal hizmetinden gelen uzak ICE adaylarını bekleyip ekleyin RTCPeerConnection.addIceCandidate() kullanarak bunları

Alıcı tarafında süreç biraz daha farklıdır.

  1. Uygun ICE ile yeni bir RTCPeerConnection örneği oluşturun yapılandırma.
  2. Sinyal hizmetinden gelen uzak SDP açıklamasını bekleyin ve RTCPeerConnection.setRemoteDescription() ile ayarlayabilirsiniz.
  3. Uzak SDP açıklaması için şunu çağırarak bir yanıt oluşturun: RTCPeerConnection.createAnswer()
  4. Yanıtı uzak eşe aktarın (bir sinyal hizmeti kullanarak).
  5. RTCPeerConnection üzerindeki icecandidate etkinlikleri için bir işleyici kaydedin.
  6. Her icecandidate etkinliği için bunu şu hesaba aktarın (bir sinyal hizmeti kullanarak). empatiyle yaklaşmak çok önemlidir.
  7. Sinyal hizmetinden gelen uzak ICE adaylarını bekleyip ekleyin RTCPeerConnection.addIceCandidate() kullanarak bunları

Bu API'nın zorluğu, bu işlemlerin çoğunun eşzamansız olması, Bu da WebRTC uygulamasının gerçek uygulamasını genellikle karmaşık hale getirir. İşlevlerin çoğu,Promise devam edebilir.

Bu API'yı kullanarak bir uygulama uygularken geliştirici, dinleyicileri kaydetmek yerine async ve await özelliklerinden yararlanıyor. (Promise.then() kullanarak) girin. Bu işlem kodunuzun takibini kolaylaştırır. Dikkatlice aşağıdaki örneği inceleyin:

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

async ve await kullanarak yukarıdaki kodu yazarken aşağıdakileri elde ederiz:

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