گوگل به پیشبرد تساوی نژادی برای جوامع سیاه متعهد است. ببینید چگونه.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

اتصالات نظیر

RTCPeerConnection رابط مرکزی در API WebRTC است. این نشان دهنده ارتباط بین همکار محلی و راه دور، و استان تمام عملکرد و وقایع لازم برای ایجاد ارتباط.

ایجاد یک اتصال شده

نرم افزار اجرای عملکرد 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
    });
}