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:
- Uygun ICE ile yeni bir
RTCPeerConnection
örneği oluşturun yapılandırma. RTCPeerConnection.createOffer()
kullanarak yerel SDP açıklaması oluşturun.- Yerel SDP açıklamasını şunu kullanarak ayarlayın:
RTCPeerConnection.setLocalDescription()
- Yerel SDP açıklamasını uzaktan kumandaya aktarın (bir sinyal hizmeti kullanarak) empatiyle yaklaşır.
RTCPeerConnection
üzerindekiicecandidate
etkinlikleri için bir işleyici kaydedin.- Her
icecandidate
etkinliği için bunu şu hesaba aktarın (bir sinyal hizmeti kullanarak). empatiyle yaklaşmak çok önemlidir. - Sinyal hizmetinden gelen uzak SDP açıklamasını bekleyin ve
RTCPeerConnection.setRemoteDescription()
ile ayarlayabilirsiniz. - Sinyal hizmetinden gelen uzak ICE adaylarını bekleyip ekleyin
RTCPeerConnection.addIceCandidate()
kullanarak bunları
Alıcı tarafında süreç biraz daha farklıdır.
- Uygun ICE ile yeni bir
RTCPeerConnection
örneği oluşturun yapılandırma. - Sinyal hizmetinden gelen uzak SDP açıklamasını bekleyin ve
RTCPeerConnection.setRemoteDescription()
ile ayarlayabilirsiniz. - Uzak SDP açıklaması için şunu çağırarak bir yanıt oluşturun:
RTCPeerConnection.createAnswer()
- Yanıtı uzak eşe aktarın (bir sinyal hizmeti kullanarak).
RTCPeerConnection
üzerindekiicecandidate
etkinlikleri için bir işleyici kaydedin.- Her
icecandidate
etkinliği için bunu şu hesaba aktarın (bir sinyal hizmeti kullanarak). empatiyle yaklaşmak çok önemlidir. - 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
});
}