🔔 با توجه به بهبود نسبی اینترنت، آمادهسازی دورهها آغاز شده است. به دلیل تداوم برخی اختلالات، بارگذاری دورهها ممکن است با کمی تأخیر انجام شود. مدت اشتراکهای تهیهشده محفوظ است.
لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش بهترین دوره WebRTC - بسیار آموزنده - ۲۰۲۵
- آخرین آپدیت
دانلود Best WebRTC Course - Very Informative - 2025
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:
*** بهترین دوره WebRTC ***
WebRTC (وب آر تی سی) به مرورگرهای وب و اپلیکیشن ها اجازه می دهد تا مستقیماً برای تماس های ویدیویی، چت های صوتی یا به اشتراک گذاری فایل ها به صورت لحظه ای به یکدیگر متصل شوند. این کار بدون نیاز به نرم افزار یا سرورهای اضافی انجام می شود.
WebRTC خالص: کتابخانه ها را فراموش کنید. من می خواهم شما WebRTC بومی و خالص را یاد بگیرید.
ارتباطات بلادرنگ (Real-Time Communication): اپلیکیشن هایی با تبادل فوری ویدیو، صدا و داده بسازید.
تبدیل به یک توسعه دهنده پرطرفدار شوید: کارفرمایان به تخصص WebRTC نیاز دارند.
اتصال نظیر به نظیر (Peer-to-Peer Connectivity): از WebRTC برای ایجاد اتصالات مستقیم نظیر به نظیر، بدون نیاز به سرور استفاده کنید.
کاربردهای متنوع: از کنفرانس، تماس های ویدیویی، برنامه های چت تا بازی، امکانات بی پایانی وجود دارد.
سازگاری بین پلتفرمی (Cross-Platform Compatibility): به طور یکپارچه در همه مرورگرهای اصلی کار می کند.
مهارت های آینده نگر: برای توسعه وب مدرن و بلادرنگ ضروری است.
از دیگران متمایز شوید: مهارت های ارتباطی بلادرنگ خود را به نمایش بگذارید.
آیا آماده اید؟
API وب آر تی سی پیچیده و طولانی است، و این دوره هر API را ساده می کند و تمام پیچیدگی های پشت WebRTC را رمزگشایی می کند.
به دنیای WebRTC وارد شوید و قدرت ارتباطات بلادرنگ را در وب باز کنید! این دوره شما را فراتر از آموزش های اولیه می برد و درک جامعی از WebRTC از پایه ارائه می دهد.
تکیه کردن صرفاً به کتابخانه ها را فراموش کنید - شما یاد خواهید گرفت که از قدرت خام WebRTC برای ساخت برنامه های تعاملی و پویا استفاده کنید.
تصور کنید که پلتفرم های کنفرانس ویدئویی، فضاهای کاری مشترک و تجربیات بازی تعاملی را مستقیماً در یک مرورگر یا دستگاه بسازید. این دوره این رویا را به واقعیت تبدیل می کند.
برخلاف مدلهای سنتی درخواست-پاسخ، WebRTC اتصالات پایدار نظیر به نظیر را بدون نیاز به سرور امکانپذیر میسازد و امکان تبادل یکپارچه دادهها را بدون نظرسنجی مداوم فراهم میکند. در دنیایی که نیازمند تجربههای بیدرنگ است، درک WebRTC دیگر اختیاری نیست - بلکه ضروری است.
این دوره بر روی پروتکل خالص WebRTC تمرکز دارد و دانش عمیق و مهارت های عملی را برای ساخت برنامه های بلادرنگ پیشرفته به شما ارائه می دهد.
چرا WebRTC یک تغییر دهنده بازی است:
ارتباطات بلادرنگ: برنامه هایی بسازید که ویدیو، صدا و داده ها را فوراً ارسال و دریافت می کنند و تجربیات کاربری جذابی ایجاد می کنند.
اتصال نظیر به نظیر: قدرت اتصالات مستقیم نظیر به نظیر را بدون نیاز به سرور درک کنید، تاخیر را کاهش دهید و عملکرد را بهبود بخشید.
کاربردهای متنوع: طیف گسترده ای از برنامه ها، از کنفرانس ویدئویی و پخش زنده گرفته تا بازی های آنلاین و ابزارهای همکاری را ایجاد کنید.
سازگاری بین پلتفرمی: WebRTC توسط تمام مرورگرهای اصلی پشتیبانی می شود و اطمینان می دهد که برنامه های شما به طور یکپارچه در پلتفرم ها و دستگاه های مختلف کار می کنند.
مهارت های آینده نگر: بر یک فناوری مسلط شوید که برای توسعه وب مدرن ضروری است و همچنان با فراگیر شدن برنامه های بلادرنگ (و بله، هوش مصنوعی) مرتبط خواهد بود.
آنچه خواهید آموخت:
اصول WebRTC: کشف کنید که WebRTC چیست، منشا آن چیست و نقش آن در متحول کردن ارتباطات بلادرنگ در وب چیست.
پروتکل های زیربنایی: عمیقاً در پروتکل هایی که باعث می شوند WebRTC کار کند، از جمله SDP، ICE، STUN و TURN، غوطه ور شوید. یاد بگیرید که چگونه این پروتکل ها اتصالات نظیر به نظیر را فعال می کنند و از گذرگاه NAT عبور می کنند.
برنامه های کاربردی دنیای واقعی: برنامه های مختلف دنیای واقعی WebRTC، از جمله کنفرانس ویدیویی، پخش زنده، بازی های آنلاین (من حتی یک بازی تیراندازی اول شخص را به شما نشان می دهم که از WebRTC استفاده می کند) و ابزارهای مشارکتی را بررسی کنید. الهام بگیرید تا برنامه های نوآورانه WebRTC خود را بسازید.
API های WebRTC: تجربه عملی با API های WebRTC، از جمله getUserMedia، RTCPeerConnection، و RTCDataChannel کسب کنید. یاد بگیرید که چگونه به دستگاه های رسانه ای دسترسی پیدا کنید، اتصالات همتا را ایجاد کنید و داده ها را بین همتایان ارسال کنید.
درک NAT: بینشی در مورد Network Address Translation (NAT) و نقش آن در ارتباطات نظیر به نظیر کسب کنید. بیاموزید که چگونه NAT بر اتصال تأثیر می گذارد و WebRTC چگونه بر این چالش ها غلبه می کند تا اتصالات یکپارچه ایجاد کند (هشدار اسپویل: اینجاست که STUN و TURN وارد تصویر می شوند).
سیگنالینگ (Signaling): اهمیت سیگنالینگ در WebRTC را درک کنید، چرا مورد نیاز است و یاد بگیرید که چگونه یک سرور سیگنالینگ را با استفاده از WebSockets پیاده سازی کنید. بدون کتابخانه ها. بدون SocketIO.
کانال های داده: یاد بگیرید که چگونه از کانال های داده WebRTC برای ارسال داده های دلخواه بین همتایان استفاده کنید. این امکاناتی را برای ساخت برنامه های مشارکتی، ابزارهای اشتراک گذاری فایل، CDN ها و موارد دیگر باز می کند.
جریان های رسانه ای: بررسی کنید که چگونه صدا و تصویر را با استفاده از WebRTC ضبط و پخش کنید.
ساخت یک سرور Node: با ساخت یک سرور Node.js با استفاده از WebSockets بومی (بدون Socket IO) تجربه عملی کسب کنید. معماری سمت سرور مورد نیاز برای پشتیبانی از برنامه های WebRTC خود را درک کنید.
پروژه دوره: برنامه چت WebRTC: دانش خود را با توسعه یک برنامه چت کاملاً کاربردی با استفاده از WebRTC و کانال های داده به عمل درآورید. این پروژه درک شما از ارتباطات بلادرنگ را تثبیت می کند و یک محصول ملموس برای به نمایش گذاشتن مهارت های خود به شما می دهد.
چرا به این دوره WebRTC نیاز دارید:
در اینجا دلیل اهمیت یادگیری WebRTC برای هر توسعه دهنده وب مشتاق آمده است:
ساخت برنامه های جذاب: تجربیات پویا و تعاملی ایجاد کنید که کاربران را مجذوب خود کند و آنها را برای کسب اطلاعات بیشتر بازگرداند.
باز کردن امکانات جدید: طیف گسترده ای از برنامه های بلادرنگ را کاوش کنید و راه های نوآورانه برای استفاده از فناوری WebRTC را کشف کنید.
از دیگران متمایز شوید: با ساخت پروژه های برجسته ای که تخصص شما را در ارتباطات بلادرنگ نشان می دهد، مهارت ها و خلاقیت خود را به نمایش بگذارید.
تبدیل به یک توسعه دهنده پرطرفدار شوید: کارفرمایان به دنبال توسعه دهندگانی هستند که بتوانند برنامه های مدرن و تعاملی ایجاد کنند، و مهارت های WebRTC بسیار ارزشمند است.
به یک انجمن پر رونق بپیوندید: با سایر توسعه دهندگان WebRTC ارتباط برقرار کنید، ایده ها را به اشتراک بگذارید و در حالی که راه های جدیدی برای پیشبرد مرزهای فناوری وب را کشف می کنید، الهام بگیرید.
با مربی خود آشنا شوید: Clyde
Clyde یک علاقه مند به برنامه نویسی است که از سن 7 سالگی در دنیای رایانه غوطه ور شده است.
Clyde با سالها تجربه در توسعه وب و اشتیاق به تدریس، دانش و بینش عملی فراوانی را برای این دوره به ارمغان می آورد. سبک تدریس جذاب و مثال های دنیای واقعی او مفاهیم پیچیده را قابل دسترس و لذت بخش می کند.
چرا هوش مصنوعی جایگزین توسعه دهندگان WebRTC نخواهد شد
در حالی که هوش مصنوعی می تواند وظایف برنامه نویسی خاصی را خودکار کند، نمی تواند خلاقیت، مهارت های حل مسئله و درک عمیق از پروتکل های شبکه مورد نیاز برای ساخت برنامه های WebRTC قوی را تکرار کند. هوش مصنوعی می تواند در تولید کد کمک کند، اما نمی تواند جایگزین تخصص انسانی مورد نیاز برای طراحی، پیاده سازی و نگهداری سیستم های ارتباطی بلادرنگ پیچیده شود.
همین حالا ثبت نام کنید
این فرصت را برای ارتقای مهارت های توسعه وب خود و باز کردن پتانسیل ارتباطات بلادرنگ با WebRTC از دست ندهید.
درست در همین ثانیه، رقبای شما در حال یادگیری چگونگی تبدیل شدن به توسعه دهندگان وب بهتری هستند.
توسعه وب در حال حاضر یک موضوع داغ است.
اما شما یک مزیت متمایز دارید. این دوره مباحث یادگیری به یاد ماندنی، تاکتیک های عملی و مثال های دنیای واقعی را ارائه می دهد. آماده شوید تا پروژه های خود را به تجربیات تعاملی تبدیل کنید که کاربران را مجذوب خود می کند و برای شما پول به ارمغان می آورد!
بیایید شروع کنیم!
سرفصل ها و درس ها
معرفی WebRTC
Introduction to WebRTC
محدودیتهای HTTP سنتی
Traditional HTTP has limitations
WebRTC - یک معرفی
WebRTC - an introduction
WebRTC نیازمند جاوااسکریپت است
WebRTC requires JavaScript
اولین تماس ویدیویی WebRTC بین فایرفاکس و کروم
First WebRTC video call between Firefox and Chrome
WebRTC تحت نظارت یک مشخصات (W3C) و بسیاری از RFCها است
WebRTC is governed by a specification (W3C) and many RFCs
موارد استفاده WebRTC (برخی از موارد استفاده ممکن است شما را شگفت زده کند)
WebRTC use cases (some of the use cases may surprise you)
کد منبع WebRTC
WebRTC source code
تابع RTCPeerConnection، "new" و 2 جنبه مهم WebRTC
The RTCPeerConnection function, "new" and the 2 most important aspects of WebRTC
راهاندازی اتصال WebRTC
WebRTC Connection Setup
اصول WebRTC
WebRTC Fundamentals
تئوری WebRTC
WebRTC Theory
دسترسی به دستگاه ویدئویی کاربر (GUM)
Accessing a user's video device (GUM)
استفاده از متد enumerateDevices() برای دسترسی به یک ID دستگاه خاص
Using the enumerateDevices() method to access a specific device ID
نمایش یک جریان رسانهای در داخل تگ <video>
Displaying a media stream inside of a <video> tag
چگونه خود را شناسایی میکنید (ipconfig، netstat و IPهای عمومی)
How do you identify yourself (ipconfig, netstat and public IPs)
NAT چیست؟
What is NAT?
معرفی کاندیداهای HOST و STUN
Introduction to HOST and STUN candidates
گردش کار WebRTC به صورت تصویری
WebRTC workflow visualized
نقش سرورهای ICE
The role of ICE servers
فریمورک Ice چیست و Ice Agent کیست؟
What is the Ice Framework and who is the Ice Agent?
بررسی شی RTCPeerConnection
Examining the RTCPeerConnection object
معرفی chrome://webrtc-internals و about:webrtc
Introduction to chrome://webrtc-internals and about:webrtc
آیا میدانستید؟
Did you know?
رویداد onicecandidate
The onicecandidate event
ایجاد یک پیشنهاد WebRTC
Creating a WebRTC offer
روشهای مختلف برای برخورد با Promises و توابع در جاوااسکریپت
The different ways to deal with Promises and functions in JavaScript
WebRTC توسط توضیحات جلسه مدیریت میشود
WebRTC is managed by session descriptions
توضیحات جلسه از راه دور
Remote session description
توضیحات جلسه چیست؟
What is a Session Description?
پروتکل ایجاد جلسه جاوااسکریپت (JSEP)
JavaScript Session Establishment Protocol (JSEP)
استفاده از getTracks() و setTrack() برای افزودن رسانه ویدئویی به اتصال همتا
Using getTracks() and setTrack() to add video media to your peer connection
استفاده از getStats() برای مشاهده گزارشهای آماری مربوط به اتصال WebRTC
Using getStats() to view statistic reports related to the WebRTC connection
یک OFFER دقیقا چه چیزی را نشان میدهد، و چگونه SDP را سفارشی کنیم؟
What exactly does an OFFER indicate, and how to customize the SDP ?
تولید کاندیداهای HOST ice
Generating HOST ice candidates
گوش دادن به رویداد onnegotiationneeded
Listening for the onnegotiationneeded event
توضیح ویژگی candidate، sdpMid، sdpMLineIndex و غیره
Explaining the candidate property, sdpMid, sdpMLineIndex and more
سرورهای STUN چیست
What are STUN servers
اطلاعات بیشتر درباره STUN
More about STUN
افزودن تنظیمات STUN به شی RTCPeerConnection
Adding STUN configurations to our RTCPeerConnection object
استفاده از Wireshark برای تجزیه و تحلیل درخواست و پاسخ STUN
Using Wireshark to analyze a STUN request and response
چرا STUN گاهی اوقات با شکست مواجه میشود؟
Why does STUN sometimes fail?
سرورهای TURN چیست
What are TURN servers
سرور سیگنالینگ و انواع مختلف (SIP، XMPP، WebSockets، AJAX و غیره)
Signaling server and the different types (SIP, XMPP, WebSockets, AJAX, etc)
کد خود را بیش از حد پیچیده نکنید
Don't over complicate your code
مرور کلی اتصال مفصل WebRTC
WebRTC Detailed Connection Overview
آخرین مرحله - بررسیهای اتصال
The final step - connectivity checks
فایلهای کدنویسی و تصویر نمودار
Coding files and diagram image
زیرساخت WebRTC
WebRTC Infrastructure
آمادهسازی محیط و راهاندازی سرور Node
Prepare environment and set up Node Server
چه کسی باید این بخش را انجام دهد؟
Who should do this section?
مرور کلی HTML
HTML overview
راهاندازی پوشهها، اسکریپت، ماژولها و محاسبه یک ID منحصر به فرد
Setting up folders, script, modules, and calculating a unique ID
تعریف وضعیت در فرانتاند و setters
Defining state on the frontend, and setters
استفاده از جاوااسکریپت برای فعال کردن modal
Using JavaScript to enable the modal
بستن modal با افزودن یک event listener روی شی window
Closing the modal by adding an event listener on the window object
بهبود نامگذاری عنصر modal و حذف کلاس hidden
Improving the naming of our modal element, and removing the hidden class
کد سرور - شروع یک پروژه Node و نصب وابستگیها
Server Code - initiating a Node project and installing dependencies
راهاندازی سرور HTTP Node و ارائه فایلهای فرانتاند
Spinning up Node's HTTP server, and serving the frontend files
نصب Nodemon و تنظیم اسکریپت "start"
Installing Nodemon, and setting up a "start" script
گوش دادن به اتصال WebSocket و استخراج پارامترهای query
Listening for a WebSocket connection, and extracting query parameters
ایجاد وضعیت سرور برای کاربران متصل
Creating server state for connected users
شروع یک درخواست WebSocket در سمت کلاینت با استفاده از API بومی WebSocket
Initiating a WebSocket request on the client side using the native WebSocket API
سمت سرور - منطق قطع اتصال و مدیریتکننده رویداد پیام
Server side - disconnection logic and message event handler
سمت کلاینت - بهروزرسانی وضعیت و ثبت event listenerهای WebSocket
Client side - updating state and registering WebSocket event listeners
سمت کلاینت - تعریف یک logger سفارشی
Client side - define a custom logger
سمت کلاینت - تعریف یک فایل ثابت و تست logger سفارشی
Client side - defining a constants file and testing custom logger
سمت کلاینت - تعریف event listenerهای فرانتاند WebSocket
Client side - defining WebSocket frontend event listeners
تعریف یک getter برای شی وضعیت
Defining a getter for our state object
آزمون راهاندازی محیط
Environment Setup Quiz
پیادهسازی منطق اتصال به اتاق قبل از WebRTC
Implement room connection logic before WebRTC
چه کسی باید این بخش را انجام دهد؟
Who needs to do this section?
ایجاد اتاق - تنظیم event listener کلیک فرانتاند
Create Room - set up frontend click event listener
ایجاد اتاق - ارسال یک درخواست POST AJAX Fetch به سرور
Create Room - send a POST AJAX Fetch request to the server
ایجاد اتاق - پردازش chunks در سرور و استخراج req body
Create Room - process chunks on the server and extract the req body
ایجاد اتاق - ارسال یک پاسخ از سرور به کلاینت
Create Room - send back a response from the server, to the client
ایجاد اتاق - برخورد با پاسخ سرور در فرانتاند
Create Room - dealing with the server response on the frontend
ایجاد اتاق - بهروزرسانی رابط کاربری برای ایجادکننده یک اتاق
Create Room - updating the user interface for the creator of a room
افزودن یک رویداد keypress و بهبود کد
Adding a keypress event, and improving code
رفع باگ (اسپویل: کلمه کلیدی "return" است)
Fixing the bug (spoiler alert: its the "return" keyword)
حذف اتاق - ارسال یک POST AJAX Fetch برای حذف یک اتاق
Destroy Room - sending a POST AJAX Fetch to destroy a room
حذف اتاق - منطق سرور برای حذف یک اتاق قبل از اینکه peer2 ملحق شود
Destroy Room - server logic to destroy a room before peer2 has joined
حذف اتاق - پایان دادن به منطق در فرانتاند
Destroy Room - finishing logic on the frontend
افزودن منطق سرور برای حذف یک اتاق زمانی که یک کاربر قطع میشود
Adding server logic for removing a room when a user disconnects
رفع خطا
Fixing error
رفع خطای favicon با استفاده از طرح URI داده
Fixing the favicon error by using the data URI scheme
پیوستن به اتاق - ارسال یک درخواست پیوستن WebSocket
Join Room - sending a WebSocket join request
پیوستن به اتاق - تنظیم دستورات switch برای مسیریابی درخواستهای مختلف
Join Room - setting up switch statements to route different requests
پیوستن به اتاق - بررسی اینکه آیا اتاق وجود دارد یا خیر، و اگر وجود ندارد، ارسال یک پیام خطا
Join Room - check whether the room exists, and if not, send a failure message
تعریف یک تابع ارسال WebSocket عمومی (همچنین برای WebRTC استفاده میشود)
Define a generic WebSocket send function (also used for WebRTC)
پیوستن به اتاق - بررسی اینکه آیا اتاق پر است یا خیر، و اگر چنین است، ارسال یک پیام خطا
Join Room - check whether the room is full, and if so, send a failure message
پیوستن به اتاق - ارسال یک پاسخ موفقیتآمیز و پیام اطلاعرسانی
Join Room - sending a successful response and notification message
پیوستن به اتاق - تنظیم دستورات switch برای رسیدگی به پیامهای ورودی WebSocket
Join Room - setting up switch statements to handle incoming WebSocket messages
پیوستن به اتاق - تعریف منطق موفقیت در فرانتاند
Join Room - defining success logic on the frontend
پیوستن به اتاق - اطلاعرسانی به کاربر دیگر که یک همتا به اتاق آنها ملحق شده است
Join Room - notifying the other user that a peer has joined their room
پیوستن به اتاق - رفع خطا و بهروزرسانی ظرف پیام
Join Room - fixing error and updating the message container
خروج از اتاق - ارسال یک پیام WebSocket برای خروج از یک اتاق
Exit Room - sending a WebSocket message to exit a room
خروج از اتاق - پردازش درخواست خروج در سرور WebSocket
Exit Room - process the exit request on the WebSocket server
خروج از اتاق - رسیدگی به پاسخ از سرور
Exit Room - handling the response from the server
تست برنامه
Testing the application
افزودن منطق قطع اتصال در سرور
Add disconnection logic on the server
افزودن منطق قطع اتصال در فرانتاند
Add disconnection logic on the frontend
لمسهای نهایی و فایلهای منبع
Final touch-ups and source files
منطق پروژه قبل از WebRTC
Project logic prior to WebRTC
استفاده از WebRTC برای ایجاد یک اتصال همتا به همتا مستقیم
Use WebRTC to establish a direct peer-to-peer connection
خلاصه فرآیند WebRTC و فایل .md
WebRTC process recap and .md file
بهروزرسانی UI و نمایش عناصر ورودی پیام
Update UI and show message input elements
افزودن پیامهای خروجی به UI فرستنده
Add outgoing messages to the sender's UI
ارسال یک پیام در یک کانال داده WebRTC
Sending a message on a WebRTC Data Channel
گوش دادن به پیامهای ورودی در dataChannel و بهروزرسانی UI
Listen for incoming messages on the dataChannel, and update UI
بستن یک اتصال همتا و کانال داده هنگام خروج از یک اتاق
Closing a peer connection and data channel when exiting a room
تست بسته شدن WebRTC برای کاربری که از اتاق خارج میشود
Testing WebRTC closure for the user exiting the room
چرا تنظیم یک متغیر روی null به جمعآوری زباله کمک میکند؟
Why does setting a variable to null, help with garbage collection?
بستن یک کانال داده
Closing a Data Channel
استفاده از webrtc-internals برای تجزیه و تحلیل کل فرآیند WebRTC
Using webrtc-internals to analyze the entire WebRTC process
بستن اتصال همتای دوم
Closing the second peer's connection
بستن یک اتصال همتا
Closing a Peer Connection
WebRTC میتواند بدون سرور کار کند
WebRTC can work without the server
اگرچه WebRTC میتواند بدون سرور کار کند، اما به طور کلی هنوز به یک سرور نیاز دارید
Although WebRTC can work without a server, generally you still need a server
تجزیه و تحلیل WebRTC در Wireshark
Analyzing WebRTC in Wireshark
نمایش نظرات