Google is committed to advancing racial equity for Black communities. See how.
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

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

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

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

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

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

कैली की तरफ, प्रक्रिया थोड़ी अलग है।

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

इस एपीआई के साथ चुनौती यह है कि इनमें से अधिकांश ऑपरेशन अतुल्यकालिक हैं, जो अक्सर वेबआरटीसी एप्लिकेशन के वास्तविक कार्यान्वयन को जटिल बनाते हैं। कई कार्य एक 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
    });
}