Google มุ่งมั่นที่จะก้าวทุนเชื้อชาติชุมชนสีดำ มาดูกันว่า
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

การเชื่อมต่อเพียร์

RTCPeerConnection เป็นอินเตอร์เฟซที่สำคัญใน WebRTC API เพราะมันหมายถึงการเชื่อมต่อระหว่างเพียร์ท้องถิ่นและระยะไกลและ provice ทุกฟังก์ชั่นและกิจกรรมต่างๆที่จำเป็นในการสร้างการเชื่อมต่อ

สร้างการเชื่อมต่อเพียร์

การประยุกต์ใช้งานฟังก์ชั่นการใช้ WebRTC มักจะต้องพึ่งพา RTCPeerConnection อินเตอร์เฟซ จากด้านโทรติดต่อ (ที่อยู่, เพียร์เริ่มต้นการเชื่อมต่อ) กระบวนการที่จะสร้างการเชื่อมต่อโดยปกติจะเป็นต่อไปนี้:

  1. สร้างใหม่ RTCPeerConnection เช่นกับการกำหนดค่าที่เหมาะสม ICE
  2. สร้างคำอธิบาย SDP ท้องถิ่นโดยใช้ RTCPeerConnection.createOffer()
  3. ตั้งคำอธิบาย SDP ท้องถิ่นโดยใช้ RTCPeerConnection.setLocalDescription()
  4. โอนเงิน (ใช้บริการส่งสัญญาณ) คำอธิบาย SDP ท้องถิ่นเพื่อเพื่อนระยะไกล
  5. ลงทะเบียนฟังสำหรับ icecandidate เหตุการณ์ใน RTCPeerConnection
  6. สำหรับแต่ละ icecandidate เหตุการณ์โอน (ใช้บริการส่งสัญญาณ) เพื่อเพื่อนระยะไกล
  7. รอคำอธิบาย SDP เข้าที่ห่างไกลจากการให้บริการการส่งสัญญาณและการตั้งค่าใช้ RTCPeerConnection.setRemoteDescription()
  8. รอให้เข้ามาผู้สมัคร ICE ห่างไกลจากการให้บริการการส่งสัญญาณและเพิ่มพวกเขาใช้ RTCPeerConnection.addIceCandidate()

ในด้านฟังก์ชันที่ถูกเรียกกระบวนการนี้ที่แตกต่างกันเล็กน้อย

  1. สร้างใหม่ RTCPeerConnection เช่นกับการกำหนดค่าที่เหมาะสม ICE
  2. รอคำอธิบาย SDP เข้าที่ห่างไกลจากการให้บริการการส่งสัญญาณและการตั้งค่าใช้ RTCPeerConnection.setRemoteDescription()
  3. สร้างคำตอบสำหรับคำอธิบาย SDP ระยะไกลโดยการเรียก RTCPeerConnection.createAnswer()
  4. โอนเงิน (ใช้บริการส่งสัญญาณ) คำตอบของเพื่อนระยะไกล
  5. ลงทะเบียนฟังสำหรับ icecandidate เหตุการณ์ใน RTCPeerConnection
  6. สำหรับแต่ละ icecandidate เหตุการณ์โอน (ใช้บริการส่งสัญญาณ) เพื่อเพื่อนระยะไกล
  7. รอให้เข้ามาผู้สมัคร ICE ห่างไกลจากการให้บริการการส่งสัญญาณและเพิ่มพวกเขาใช้ RTCPeerConnection.addIceCandidate()

ความท้าทายกับ API นี้คือว่าส่วนใหญ่ของการดำเนินงานเหล่านี้จะไม่ตรงกันซึ่งมักจะทำให้การดำเนินงานที่เกิดขึ้นจริงของโปรแกรม WebRTC ซับซ้อน หลายฟังก์ชั่นกลับมาเป็น Promise ซึ่งจะต้องมีการแก้ไขก่อนขั้นตอนต่อไปในกระบวนการที่สามารถดำเนินการต่อ

ก็จะแนะนำว่าเมื่อใช้โปรแกรมที่ใช้ API นี้การใช้นักพัฒนาแต่งหน้าของ 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
    });
}