गूगल काले समुदायों के लिए जातीय इक्विटी को आगे बढ़ाने के लिए प्रतिबद्ध है। देखो कैसे।
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

सहकर्मी कनेक्शन

RTCPeerConnection WebRTC API में केंद्रीय इंटरफेस है। यह स्थानीय और दूरस्थ सहकर्मी के बीच संबंध का प्रतिनिधित्व करता है, और सभी समारोह और आवश्यक घटनाओं provice कनेक्शन स्थापित करने।

एक सहकर्मी कनेक्शन स्थापित कर रहा

WebRTC कार्यात्मकता को लागू आवेदन आमतौर पर पर काफी भरोसा होगा RTCPeerConnection इंटरफ़ेस। कॉल करने वालों की ओर से (है कि, सहकर्मी एक कनेक्शन की शुरुआत), एक कनेक्शन स्थापित करने की प्रक्रिया आम तौर पर इस प्रकार है:

  1. एक नया बनाएं RTCPeerConnection उचित बर्फ विन्यास के साथ उदाहरण।
  2. का उपयोग करते हुए एक स्थानीय एसडीपी वर्णन बनाएं RTCPeerConnection.createOffer()
  3. का उपयोग करते हुए स्थानीय एसडीपी विवरण निर्धारित RTCPeerConnection.setLocalDescription()
  4. स्थानांतरण दूरस्थ सहकर्मी को स्थानीय एसडीपी वर्णन (एक संकेत सेवा का उपयोग)।
  5. के लिए एक श्रोता रजिस्टर icecandidate पर घटनाओं RTCPeerConnection
  6. प्रत्येक के लिए icecandidate घटनाओं, दूरस्थ सहकर्मी को (एक संकेत सेवा का उपयोग कर) यह हस्तांतरण।
  7. संकेतन सेवा से भेजे दूरस्थ एसडीपी विवरण के लिए प्रतीक्षा करें और का उपयोग कर यह सेट RTCPeerConnection.setRemoteDescription()
  8. संकेत सेवा से भेजे दूरस्थ बर्फ उम्मीदवारों के लिए प्रतीक्षा करें और का उपयोग कर उन्हें जोड़ने RTCPeerConnection.addIceCandidate()

कॉल प्राप्त करने वाला पक्ष पर, प्रक्रिया एक से थोड़ा अलग है।

  1. एक नया बनाएं RTCPeerConnection उचित बर्फ विन्यास के साथ उदाहरण।
  2. संकेतन सेवा से भेजे दूरस्थ एसडीपी विवरण के लिए प्रतीक्षा करें और का उपयोग कर यह सेट RTCPeerConnection.setRemoteDescription()
  3. फोन करके दूरस्थ एसडीपी विवरण के लिए एक जवाब बनाएं RTCPeerConnection.createAnswer()
  4. स्थानांतरण दूरस्थ सहकर्मी का जवाब (एक संकेत सेवा का उपयोग)।
  5. के लिए एक श्रोता रजिस्टर icecandidate पर घटनाओं RTCPeerConnection
  6. प्रत्येक के लिए icecandidate घटनाओं, दूरस्थ सहकर्मी को (एक संकेत सेवा का उपयोग कर) यह हस्तांतरण।
  7. संकेत सेवा से भेजे दूरस्थ बर्फ उम्मीदवारों के लिए प्रतीक्षा करें और का उपयोग कर उन्हें जोड़ने RTCPeerConnection.addIceCandidate()

इस API के साथ चुनौती यह है कि इन आपरेशनों के सबसे अतुल्यकालिक है, जो अक्सर एक WebRTC आवेदन जटिल के वास्तविक क्रियान्वयन कर रहे हैं। कार्यों में से कई एक वापसी Promise जो प्रक्रिया में अगला कदम जारी रखने से पहले हल किया जाना है।

यह अनुशंसित है कि जब इस एपीआई, के डेवलपर मेकअप उपयोग का उपयोग कर एक आवेदन को लागू करने async और await (उपयोग करने के बजाय श्रोताओं के पंजीकरण की Promise.then() ), पालन करने के लिए, क्योंकि यह आपके कोड अधिक आसान बनाता है। निम्न उदाहरण पर विचार करें:

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

जब का उपयोग करके उपरोक्त कोड लिखने async और await , हम निम्नलिखित मिलती है:

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