برنامه نویسی

آیا می دانید برای ایجاد یک برنامه کنفرانس ویدئویی WebRTC چه چیزی لازم است؟

من هم نمی‌دانستم، تجربه استفاده از WebRTC برای ارتباط یک به یک را داشتم، بنابراین انجام آن با شرکت‌کنندگان بیشتر برایم آسان به نظر می‌رسید، اما نمی‌دانستم وارد چه چیزی هستم، زیرا چندین مفهوم وجود داشت که من نمی دانستم و باید قبلاً می فهمیدم تا بتوانم شروع کنم.

آیا می دانید برای ایجاد یک برنامه کنفرانس ویدئویی WebRTC

تجربه من از WebRTC در مقابل برنامه کنفرانس ویدیویی

بیایید با اصول اولیه What is شروع کنیم WebRTC?

Web Real-Time Communication (WebRTC) یک پروژه متن باز است که توسط گوگل، موزیلا و اپرا در میان دیگران پشتیبانی می شود، و گروهی از API ها و پروتکل های توسعه یافته در کنسرسیوم وب جهانی (W3C) و گروه ویژه مهندسی اینترنت (IETF) ) که به ما امکان می دهد با یکپارچه سازی ویدیو، صدا و داده ها به صورت بومی از طریق مرورگر، حتی در دستگاه های تلفن همراه، ارتباط بی درنگ داشته باشیم.

آیا می دانید برای ایجاد یک برنامه کنفرانس ویدئویی WebRTC

ارتباطات بلادرنگ وب

چگونه کار می کند؟

کلمه کلیدی در اینجا “بومی” است، به این معنی که برای کار کردن آن نیازی به نصب هیچ پلاگین یا نرم افزاری ندارید، همه اینها به لطف مجموعه ای از API هایی است که این کار را ممکن می کند، که عبارتند از:

  • getUserMedia (gUM): مسئولیت به دست آوردن ایمن دستگاه های صوتی و تصویری با درخواست مجوزهای لازم برای اشتراک گذاری از کاربر می باشد. این API فقط در صفحاتی که از طریق HTTPS ارائه می‌شوند کار می‌کند تا از امنیت و ویژگی‌هایی که ارائه می‌کند استفاده کند، بنابراین اتصال امن است.

  • اتصال RTCPeer: اجازه می دهد تا ارتباط بین peers *(کاربران)، اتصال با استفاده از SRTP، که یک نوع امن از RTP است، انجام می شود. لازم به ذکر است که RTP پروتکل شبکه ای است که برای ارائه صدا و تصویر از طریق شبکه های IP طراحی شده است. بنابراین، RTCPeerConnection انتقال رسانه بین *همتاها را مدیریت می کند و خدمات تحویل سرتاسری برای داده های بلادرنگ را به شیوه ای امن ارائه می دهد. پروتکل دیگری که استفاده می شود RTCP است که اطلاعاتی در مورد کیفیت خدمات ارائه شده توسط RTP ارائه می دهد.

  • DataChannel: این به ما کمک می کند تا هر نوع داده ای مانند چت متنی یا انتقال فایل را ارسال کنیم.

1683793076 986 آیا می دانید برای ایجاد یک برنامه کنفرانس ویدئویی WebRTC

اتصال همتا به همتا

سیگنالینگ

WebRTC به تنهایی نمی تواند اتصالات ایجاد کند، یک کانال ارتباطی برای تبادل اطلاعات قبل از برقراری اتصال مورد نیاز است، به این کانال سیگنال یا سرویس سیگنالینگ می گویند. شایان ذکر است که جزء استاندارد WebRTC نیست، اما یک قطعه اساسی است.

اطلاعاتی که مبادله می شود “پیشنهاد و پاسخ” با استفاده از SDP (پروتکل شرح جلسه) است که حاوی کدک، آدرس منبع و اطلاعات زمان صوتی و تصویری است.

همتا A اتصال را آغاز می کند و یک نوع پیام به نام پیشنهاد ایجاد می کند. سپس این پیشنهاد را به همتا B با استفاده از کانال سیگنال. همتا B پیشنهاد را در کانال سیگنال دریافت می کند و یک پاسخ ایجاد می کند. در نهایت آن را به عقب می فرستد همتا A با استفاده از همان کانال سیگنال.

همچنین همسالان باید اطلاعات مربوط به اتصال شبکه را مبادله کنند. این به عنوان کاندیدای ICE شناخته می شود (کاندیدای ICE) و اطلاعاتی را برای اتصال مانند آدرس IP و پورت هر هاست به ما می دهد.

هر کدام یکبار همتا می داند دیگری کجاست، ارتباط مستقیما برقرار می شود. پس از شروع اتصال، سرور دیگر مورد نیاز نیست، اما می توان از آن برای احراز هویت شرکت کنندگان و کنترل جلسه استفاده کرد.

1683793077 400 آیا می دانید برای ایجاد یک برنامه کنفرانس ویدئویی WebRTC

اتصال همتا به همتا با استفاده از سیگنالینگ

به طرز مشکوکی ساده درست است؟ اما چیزی درست نیست.

1683793077 608 آیا می دانید برای ایجاد یک برنامه کنفرانس ویدئویی WebRTC

به طرز مشکوکی ساده

WebRTC استفاده می کند نظیر به نظیر اتصالات، که در آن اتصالات صوتی، تصویری و داده مستقیماً بین مرورگرها برقرار می شود. متأسفانه، فایروال‌ها و NAT این کار را دشوار می‌کنند، زیرا سرورهای STUN و TURN وجود دارند.

STUN و TURN سرورها

یک سرور STUN (Session Traversal Utilities for NAT) به این اجازه می دهد همتا اطلاعات شبکه عمومی آن و نحوه دسترسی به آن از طریق اینترنت را بدانید.

اگر ارتباط مستقیم بین همسالان خراب می شود، یا ممکن نیست، یک سرور TURN (پیمایش با استفاده از رله در اطراف NAT) می تواند ترافیک را به دیگری ارسال کند. همتا، اما این منجر به مصرف بیشتر منابع می شود.

1683793077 388 آیا می دانید برای ایجاد یک برنامه کنفرانس ویدئویی WebRTC

سرور STUN

1683793077 995 آیا می دانید برای ایجاد یک برنامه کنفرانس ویدئویی WebRTC

اتصال همتا به همتا از طریق اینترنت

با این، ما جریان کاملی از نحوه عملکرد WebRTC داریم، در این مورد، ارتباط یک به یک است، اما وقتی به شرکت کنندگان بیشتری نیاز داریم چه اتفاقی می افتد؟

خوب، ما می دانیم که برای اتصال امکان پذیر است همتا باید یک آبجکت اتصال ایجاد کند، این شیء حاوی تمام اطلاعات صوتی، تصویری و داده و همچنین اطلاعات شبکه عمومی سرورهای STUN و TURN است.

هنگامی که این روند تکرار می شود، در هر همتا برای هر کدام یک شی اضافی ایجاد می شود همتا متصل، به این توپولوژی مش می گویند.

1683793077 599 آیا می دانید برای ایجاد یک برنامه کنفرانس ویدئویی WebRTC

توپولوژی مش، هر همتا باید یک اتصال به هر همتای متصل را حفظ کند

اگر تعداد همسالان افزایش می یابد، مرورگر باید با هر یک از آنها ارتباط برقرار کند همسالان، که به نوبه خود مصرف منابع را افزایش می دهد و می تواند برای دستگاه های ارزان قیمت یا تلفن همراه مشکل ساز باشد. این ساده‌ترین راه‌حل است زیرا نیازی به تغییر چیزی در زیرساخت ندارید زیرا تمام کارها در مرورگر انجام می‌شود، اما اگر نیاز به پشتیبانی از کاربران بیشتری دارید، باید استراتژی دیگری را انتخاب کنید.

واحد کنترل چند نقطه (MCU)

ایده پشت این کار داشتن یک مرکز است سرور رسانه، که وظیفه دریافت، رمزگشایی، پردازش، رمزگذاری و ارسال مجدد جریان ها را به عهده دارد. همسالان. بنابراین، همسالان فقط یک ارتباط واحد با سرور رسانه، به جای داشتن یکی برای هر همتا. بنابراین اگر تعداد همسالان افزایش می یابد، مصرف منابع دستگاه تحت تأثیر قرار نخواهد گرفت.

1683793077 591 آیا می دانید برای ایجاد یک برنامه کنفرانس ویدئویی WebRTC

واحد کنترل چند نقطه (MCU)

با این استراتژی، مشکلات توپولوژی مش حل می شود، اما به سروری با منابع کافی نیاز است، زیرا پردازش، کدگذاری و رمزگشایی تمام جریان ها، CPU زیادی مصرف می کنند و این به طور مستقیم بر بودجه تأثیر می گذارد.

واحد حمل و نقل انتخابی (SFU)

SFU شبیه MCU است، از سرور رسانه ای نیز استفاده می کند، تفاوت این است که سرور به جای انجام تمام پردازش ها، جریان ها را به سمت سرور هدایت می کند. همسالان به طوری که آنها پردازش های لازم را انجام می دهند حتی سرور نیز می تواند انتخاب کند که آیا یک جریان خاص ارسال شود یا نه همتا که قرار است آن را دریافت کند، به عنوان مثال، کیفیت ویدیو بسته به سرعت اتصال می تواند تغییر کند همتا، به این ترتیب نیازی نیست سرور آنقدر قدرتمند باشد. بنابراین، این گزینه بهتری است زیرا از مشکلات توپولوژی مش جلوگیری می شود و در عین حال از مزایای MCU بدون هزینه های بالای مرتبط استفاده می شود.

1683793078 839 آیا می دانید برای ایجاد یک برنامه کنفرانس ویدئویی WebRTC

واحد حمل و نقل انتخابی (SFU)

اکنون می دانیم که WebRTC به صورت بومی در مرورگر کار می کند، از API ها و پروتکل های باز برای ایجاد امنیت استفاده می کند همتا-به-همتا اتصالات از طریق سرورهای STUN و TURN و قبلاً توسط a سرور سیگنالینگو همچنین استراتژی ها و توپولوژی های مختلفی که می توان استفاده کرد.

همانطور که می بینید، ایجاد یک پلت فرم ویدئو کنفرانس ممکن است ساده به نظر برسد، اما زمانی که آن را در دنیای واقعی به کار می برید، جالب می شود، زیرا باید جنبه ها و مفاهیم مختلف و همچنین مزایا یا معایب توپولوژی های خاص را در نظر بگیرید. برای استفاده ای که می خواهید از آن استفاده کنید، بدون اینکه هزینه ها را کنار بگذارید.

امیدوارم این پست به عنوان نقطه شروعی برای سرمایه گذاری در توسعه برنامه های کاربردی با WebRTC باشد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا