آموزش دوره عملی WebRTC. ایجاد برنامه چت تصویری

WebRTC Practical Course. Create Video Chat Application

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: WebRTC را با ایجاد برنامه Meet the Strangers (کلون Omegle با امکان تماس مستقیم) با جاوا اسکریپت وانیلی WebRTC کار با جریان های رسانه ای ایجاد ارتباط همتا به همتا ایجاد سرور socketIO ایجاد برنامه چت ویدیویی ارتباط در زمان واقعی کار با جاوا اسکریپت و html برای مدیریت چت تصویری رابط کاربری پیاده سازی WebRTC ساخت فرانت اند با جاوا اسکریپت وانیلی کانال های داده WebRTC ضبط جریان پیش نیازها:دانش پایه جاوا اسکریپت

WebRTC را با ایجاد پروژه با جاوا اسکریپت وانیلی بیاموزید. فقط دانش پایه جاوا اسکریپت مورد نیاز است. ما تمام مراحل را برای ایجاد برنامه با تماس مستقیم طی می کنیم که در آن می توانید با ارسال کد شخصی دو کاربر ارتباط برقرار کنید یا فقط می توانید مانند برنامه های وب omegle یا talkwithstranger با فرد غریبه ارتباط برقرار کنید. ما پیاده سازی WebRTC خود را می نویسیم تا نشان دهیم که چگونه می توانید برنامه WebRTC را به راحتی توسعه دهید. ما از هیچ فریم ورکی برای فرانت‌اند خود استفاده نخواهیم کرد، بنابراین نیازی به داشتن تجربه با فریم‌ورک‌ها (React، Vue.js، Angular) ندارید. ما همچنین از SocketIO به عنوان سرور سیگنالینگ برای برنامه خود استفاده خواهیم کرد. پس از این دوره شما قادر خواهید بود اپلیکیشنی را بسازید که با استفاده از WebRTC خواهد بود. فرقی نمی کند که این بازی ارتباطی بیدرنگ باشد یا چت ویدیویی. شما روند ایجاد ارتباط بین دو همتا را خواهید دانست.

در برنامه ما از:

استفاده خواهیم کرد
  • WebRTC

  • جاوا اسکریپت

  • SocketIO

  • Express.js

  • Node.js

  • Vanilla JavaScript برای ایجاد قسمت جلویی برنامه ما

ما روی موارد مرتبط با WebRTC تمرکز خواهیم کرد. همچنین شما می دانید که چگونه می توانید از SocketIO به عنوان سرور وب سوکت خود استفاده کنید.

فرآیند ایجاد برنامه:

  • محیط را آماده کنید

  • با استفاده از وانیلی جاوا اسکریپت، نمای ظاهری برنامه ما را بسازید

  • ارتباط با SocketIO

  • اجرای WebRTC خود را برای تماس‌ها اضافه کنید

  • کانالهای داده WebRTC را برای عملکرد چت اضافه کنید

  • افزودن امکان ضبط

  • افزودن امکان ارتباط با افراد غریبه

امیدوارم از دوره لذت ببرید و پس از پایان آن احساس اطمینان کنید که شروع به آماده سازی و تنظیم پیاده سازی WebRTC خود می کنید.


سرفصل ها و درس ها

ارائه و تئوری برنامه App presentation and theory

  • پیش نمایش دوره Course preview

  • پشته فناوری و معرفی Technology stack and introduction

  • پیش نمایش برنامه - تماس های ویدیویی مستقیم App preview - direct video calls

  • پیش نمایش برنامه - مسنجر App preview - messenger

  • پیش نمایش برنامه - غریبه ها App preview - Strangers

  • تئوری - WebRTC چیست؟ Theory - What is WebRTC ?

  • تئوری - سرور سیگنالینگ چیست؟ Theory - What is signaling server ?

  • تئوری - سرور STUN چیست؟ Theory - What is STUN server ?

  • تئوری - سرور TURN چیست؟ Theory - What is TURN server ?

  • تئوری - SDP چیست؟ Theory - What is SDP ?

  • تئوری - نامزدهای ICE چیست؟ Theory - What are ICE candidates ?

  • نظریه - نحوه برقراری ارتباط مستقیم بین همتایان Theory - How to establish direct connection between peers

محیط را آماده کنید و سرور ایجاد کنید Prepare environment and create server

  • مقداردهی اولیه سرور Server initialization

  • اضافه کردن nodemon برای مشاهده تغییرات Adding nodemon to watch the changes

  • اتصال سرور ما با Socket.IO Connecting our server with Socket.IO

  • اتصال به Socket.IO از سمت مشتری Connecting to Socket.IO from client side

  • ذخیره آرایه ای از کاربران متصل در سرور ما Storing array of connected users in our server

ایجاد قسمت جلویی برنامه ما Creating front-end of our application

  • وارد کردن فایل ها به پروژه ما و ایجاد پیش نمایش اصلی Importing files to our project and creating main preview

  • ایجاد محفظه کد شخصی Creating personal code container

  • ایجاد ورودی برای کد شخصی و دکمه های اتصال Creating input for personal code and connection buttons

  • ایجاد دکمه برای اتصال غریبه ها Creating buttons for stranger connection

  • افزودن چک باکس برای اتصالات غریبه Adding checkbox for stranger connections

  • اصلاح استایل داشبورد و مسدودکننده داشبورد اضافه شد Dashboard styling fix and dashboard blocker added

  • ایجاد مکان‌نمای ظرف تماس و ویدیوی راه دور Creating call container placeholder and remote video

  • افزودن پیش نمایش ویدیوی محلی Adding local video preview

  • ایجاد دکمه های مکالمه Creating conversation buttons

  • ایجاد دکمه اتصال پایان چت Creating end chat connection button

  • ایجاد دکمه ها و پنل ضبط Creating recording buttons and panel

  • افزودن ورودی پیام جدید با دکمه Adding new message input with button

آماده سازی منطق برنامه قبل از اتصال WebRTC Preparing logic of the application before WebRTC connection

  • مدیریت دولتی - اضافه کردن فروشگاه سفارشی ما State management - adding our custom store

  • به روز رسانی کد شخصی Updating personal code

  • عملکرد دکمه مقابله Coping button functionality

  • آماده سازی کد برای ارسال پیش پیشنهاد Code preparation to send pre-offer

  • ارسال پیش پیشنهاد به سرور Sending pre-offer to server

  • ارسال پیش پیشنهاد به تماس گیرنده Sending pre-offer to callee

  • رفع اشکال پیش از پیشنهاد Fixing pre-offer bug

  • رسیدگی به پیش پیشنهاد Handling pre-offer

  • ایجاد گفتگوی تماس ورودی Creating incoming call dialog

  • نمایش گفتگوی تماس فقط در زمانی که پیش پیشنهاد ارائه شود Showing calling dialog only when pre offer will come

  • حل مشکل بدون درخواست Solving problem with no request coming

  • ایجاد گفتگوی تماس در سمت تماس گیرنده Creating calling dialog at caller side

  • ارسال پاسخ پیش از پیشنهاد برای تماس گیرنده Sending pre-offer answer to caller

  • رسیدگی به پاسخ قبل از پیشنهاد Handling pre-offer answer

  • نمایش گفتگوی پاسخ در صورت عدم امکان تماس Showing response dialog if call is not possible

  • نمایش عناصر تماس مرتبط با نوع تماس Showing call elements related with call type

  • تنظیم موقعیت صحیح عنصر ویدیوی راه دور Setting correct position of remote video element

پیاده سازی WebRTC برای ایجاد ارتباط بین دو کاربر WebRTC implementation to establish connection between two users

  • دسترسی به دوربین و میکروفون و نمایش آن در پیش نمایش محلی Getting an access to camera and microphone and showing that in local preview

  • ایجاد ارتباط همتا Creating peer connection

  • ارسال پیشنهاد WebRTC Sending WebRTC offer

  • آزمایش پیشنهاد WebRTC Testing WebRTC offer

  • مدیریت پیشنهاد WebRTC آماده سازی پاسخ WebRTC و رسیدگی به آن در سمت تماس گیرنده Handling WebRTC offer. Preparing WebRTC answer and handling it at caller side

  • تبادل نامزدهای ICE و افزودن آنها به اتصال همتا Exchanging ICE candidates and adding them to peer connection

  • افزودن قابلیتی برای قطع و وصل کردن صدا و روشن/خاموش کردن دوربین Adding functionality to mute and unmute and turn on/off camera

  • قابلیت اشتراک گذاری صفحه نمایش Screen sharing functionality

  • بازگشت به دوربین Switching back to camera

کانال های داده WebRTC WebRTC data channels

  • ایجاد کانال داده و پیکربندی اتصال همتا Creating data channel and configuring peer connection

  • ارسال پیام با استفاده از کانال داده Sending messages using data channel

  • نمایش پیام ها Displaying messages

MediaRecorder API MediaRecorder API

  • ایجاد ابزارهای ضبط Creating recording utils

  • اتصال ابزارهای ضبط با دکمه Connecting recording utils with buttons

  • مکث و از سرگیری ضبط Pausing and resuming recording

تکمیل برنامه با افزودن امکان ارتباط با غریبه ها و قطع کردن تلفن Finishing app by adding possibility to connect with the strangers and hanging up

  • آماده شدن برای قطع تماس Preparing for hang up possibilty

  • قطع تماس با کاربر متصل Hanging up with connected user

  • در حال اتمام اتصال چت Finishing chat connection

  • آماده سازی حالت های تماس Preparing call states

  • حالت های تماس پایانی Finishing call states

  • رفع اشکال وضعیت تماس Fixing call state bug

  • افزودن امکان قطع به گفتگوی تماس adding hang up possibility to calling dialog

  • کادر تأیید اتصالات از غریبه ها مجاز است Allow connections from strangers checkbox

  • ذخیره کردن لیست کاربرانی که اجازه اتصال از افراد غریبه در سرور را می دهند Storing list of the users which allow connections from strangers at server

  • دریافت شناسه سوکت کاربر تصادفی از سرور Getting socket id of random user from server

  • رفع اشکال هنگام تلاش برای دریافت شناسه سوکت تصادفی از سرور Fixing bug when trying to get random socket id from server

  • ارتباط با Stranger Connecting with Stranger

  • نمایش رابط کاربری به نوع تماس غریبه بستگی دارد Showing UI depends of the stranger call type

  • اگر غریبه ای در دسترس نباشد، اطلاعات را اضافه کنید Adding information if no Strangers are available

استقرار برنامه به heroku App deployment to heroku

  • Heroku - استقرار برنامه Heroku - deploying app

اتصال با سرور TURN و بررسی اتصال خارج از شبکه محلی Connecting with TURN server and checking connection outside of local network

  • دریافت اعتبار سرور TURN از Twilio Getting TURN server credentials from Twilio

  • واکشی اعتبار سرور TURN از سمت سرویس گیرنده Fetching TURN server credentials from client side

  • بررسی اینکه آیا اعتبارنامه‌های TURN با موفقیت واکشی شده‌اند Checking if TURN credentials are successfully fetched

  • در حال استقرار برنامه متصل به سرور TURN Deploying application connected to TURN server

  • تست اتصال با کاربر متصل به شبکه های مختلف Testing connection with user connected to different network

بعدش چی What's next

  • بعدش چی What's next

نمایش نظرات

آموزش دوره عملی WebRTC. ایجاد برنامه چت تصویری
جزییات دوره
8.5 hours
82
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
2,567
4.7 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Marek Gryszkiewicz Marek Gryszkiewicz

توسعه دهنده وب