К содержимому
learnspaceYOUR NEXT CHAPTER
ПРОСТРАНСТВО ОБУЧЕНИЯ
ГлавнаяКаталог курсовМоё обучениеCoursera

Знания без границ

Учитесь у лучших университетов и компаний мира.

Открыть Coursera
Интеграция
Пространство университета
Моё пространствоСтраница курса
↵
ЯЛичный кабинетСтудент
© 2026 LearnSpaceКаждый день — возможность узнать больше.Помощь
Mastering WebRTC: Real-Time Communication with JavaScript · LearnSpace
Назад в каталог
courseraПрограммирование

Mastering WebRTC: Real-Time Communication with JavaScript

Курс от Packt
Средний≈ 16.3 чАнглийский
О курсеНавыкиПрограммаПреподаватели

О курсе

This course features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. In this comprehensive course, you'll master the powerful WebRTC (Web Real-Time Communication) technology, which allows for peer-to-peer communication directly within browsers. By learning both the theoretical foundations and practical implementation, you'll be able to build cutting-edge, real-time applications such as video chat platforms and data-sharing tools. With a focus on the full WebRTC workflow, from device access and NAT traversal to connection establishment and room management, you’ll gain both theoretical insights and hands-on experience. As you progress, the course will walk you through setting up your development environment, handling signaling, creating peer connections, and troubleshooting. You'll work with key WebRTC objects like RTCPeerConnection and explore how to configure and use STUN/TURN servers. The course is structured into logical stages, ensuring that you’ll understand how to design, test, and deploy WebRTC applications efficiently. Whether you're new to real-time web technologies or looking to deepen your expertise, this course is perfect for anyone interested in developing WebRTC-based communication tools. Prerequisites include a basic understanding of JavaScript, HTML, and networking concepts. While the course is beginner-friendly, it also provides a depth of information suitable for intermediate learners. By the end of the course, you will be able to create fully functional WebRTC applications, manage real-time media and data streams, debug and optimize WebRTC connections, and deploy peer-to-peer communication tools efficiently.

Навыки, которые вы освоите

JavascriptServer SideNode.JSWeb ServersBrowser CompatibilityLive StreamingNetwork ProtocolsDebuggingServersFront-End Web DevelopmentWeb Development ToolsNetwork TroubleshootingReal Time DataWeb ApplicationsTelecommunications

Программа курса

5 модулей · 144 учебных материалов

01Introduction to WebRTC8 материалов

Introduction to WebRTC

Traditional HTTP has limitationsВидеоFull Course ResourcesЧтениеWebRTC - an introductionВидеоFirst WebRTC video call between Firefox and ChromeВидео

Учитесь у экспертов

Packt - Course Instructors

Преподаватель курса

Mastering WebRTC: Real-Time Communication with JavaScript
В каталоге вашей программы

Инвестируйте в себя

Новые знания — в удобное для вас время.

Начать на Coursera

Обучение откроется на Coursera
в новой вкладке

Обучение на Coursera

≈ 16.3 ч

5 модулей

Язык: Английский

Субтитры: Арабский, Французский, Итальянский, Корейский, Индонезийский, Испанский, Японский

Часть программы вашего университета
WebRTC is governed by a specification (W3C) and many RFCsВидео
WebRTC use cases (some of the use cases may surprise you)Видео
WebRTC source codeВидео
The RTCPeerConnection function, "new" and the 2 most important aspects of WebRTCВидео
02WebRTC Theory32 материалов

WebRTC Theory

Accessing a user's video device (GUM)ВидеоUsing the enumerateDevices() method to access a specific device IDВидеоDisplaying a media stream inside of a tagВидеоHow do you identify yourself (ipconfig, netstat and public IPs)ВидеоWhat is NAT?ВидеоIntroduction to HOST and STUN candidatesВидеоWebRTC workflow visualizedВидеоWhat is the Ice Framework and who is the Ice Agent?ВидеоExamining the RTCPeerConnection objectВидеоIntroduction to chrome://webrtc-internals and about:webrtcВидеоThe onicecandidate eventВидеоCreating a WebRTC offerВидеоThe different ways to deal with Promises and functions in JavaScriptВидеоWebRTC is managed by session descriptionsВидеоRemote session descriptionВидеоJavaScript Session Establishment Protocol (JSEP)ВидеоUsing getTracks() and setTrack() to add video media to your peer connectionВидеоUsing getStats() to view statistic reports related to the WebRTC connectionВидеоWhat exactly does an OFFER indicate, and how to customize the SDP?ВидеоGenerating HOST ice candidatesВидеоListening for the onnegotiationneeded eventВидеоExplaining the candidate property, sdpMid, sdpMLineIndex, and moreВидеоWhat are STUN serversВидеоAdding STUN configurations to our RTCPeerConnection objectВидеоUsing Wireshark to analyze a STUN request and responseВидеоWhy does STUN sometimes fail?ВидеоWhat are TURN serversВидеоSignaling server and the different types (SIP, XMPP, WebSockets, AJAX, etc)ВидеоWebRTC Detailed Connection OverviewВидеоThe final step - connectivity checksВидеоUnderstanding the WebRTC Connection Establishment ProcessDIALOGUEWebRTC Theory - AssessmentЗадание
03Prepare environment and set up Node Server20 материалов

Prepare environment and set up Node Server

HTML overviewВидеоSetting up folders, script, modules, and calculating a unique IDВидеоDefining state on the frontend, and settersВидеоUsing JavaScript to enable the modalВидеоClosing the modal by adding an event listener on the window objectВидеоImproving the naming of our modal element, and removing the hidden classВидеоServer Code - initiating a Node project and installing dependenciesВидеоSpinning up Node's HTTP server, and serving the frontend filesВидеоInstalling Nodemon, and setting up a "start" scriptВидеоListening for a WebSocket connection, and extracting query parametersВидеоCreating server state for connected usersВидеоInitiating a WebSocket request on the client side using the native WebSocket APIВидеоServer side - disconnection logic and message event handlerВидеоClient side - updating state and registering WebSocket event listenersВидеоClient side - define a custom loggerВидеоClient side - defining a constants file and testing custom loggerВидеоClient side - defining WebSocket frontend event listenersВидеоDefining a getter for our state objectВидеоSetting up a WebSocket Server with Node.js and ExpressDIALOGUEPrepare environment and set up Node Server - AssessmentЗадание
04Implement room connection logic before WebRTC33 материалов

Implement room connection logic before WebRTC

Create Room - set up frontend click event listenerВидеоCreate Room - send a POST AJAX Fetch request to the serverВидео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ВидеоAdding a keypress event, and improving codeВидеоFixing the bug (spoiler alert: it's the "return" keyword)ВидеоDestroy Room - sending a POST AJAX Fetch to destroy a roomВидео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ВидеоFixing the favicon error by using the data URI schemeВидеоJoin Room - sending a WebSocket join requestВидеоJoin Room - setting up switch statements to route different requestsВидеоJoin Room - check whether the room exists, and if not, send a failure messageВидео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Видео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ВидеоExit Room - sending a WebSocket message to exit a roomВидео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ВидеоImplementing Room Creation and Deletion via AJAXDIALOGUEImplement room connection logic before WebRTC - AssessmentЗадание
05Use WebRTC to establish a direct peer-to-peer connection51 материалов

Use WebRTC to establish a direct peer-to-peer connection

WebRTC process recap and .md fileВидеоSTAGE 1 - setting up STUN configuration serversВидеоTriggering the WebRTC processВидеоUpdating UI and displaying buttonsВидеоCreating a peer connection objectВидеоThe connectionstatechange and signalingstatechange event listenersВидеоCompleting event handler logicВидеоUpdating UI after a user clicks a buttonВидеоTesting our codeВидеоTrigger a function to create a Data ChannelВидеоWebRTC Data Channel OverviewВидеоCreating a WebRTC data channel, and setting up ondatachannel event listenerВидеоTesting and viewing Chrome's webrtc-internalsВидеоCreating a WebRTC offerВидеоSet local description and listen for ice candidatesВидеоTesting ice generationВидеоSetting up function to send an offerВидеоSending an offer to the signaling server (end of Stage 1)ВидеоStage 2 - setting up function routes, and sending offer to PEER2ВидеоStage 3 begins - PEER2 receiving an offerВидеоFixing a bug, and confirming that PEER2 has received the offerВидеоShowing PEER2 buttonsВидеоCreate PEER2's peer connection objectВидеоRegistering the ondatachannel event on PEER2's pc objectВидеоTimeout - viewing the ondatachannel listener on the pc objectВидеоSet remote description with PEER1's offerВидеоCreate WebRTC answer, and set local session description with that answerВидеоTouchupsВидеоSend WebRTC answer to signaling serverВидеоSend ice candidates to signaling serverВидеоStage 4 begins - server receiving answer and ice candidatesВидеоCreating a generic signaling message function for WebRTC messagesВидеоStage 5 begins - PEER1 receiving an answer and ice candidatesВидеоTimeout - testing codeВидеоSending ice candidates to PEER2ВидеоHandle ice candidates receivedВидеоSetting remote description with the answer, and looping through ice bufferВидеоMILESTONE - testing the WebRTC connectionВидеоUpdate UI and show message input elementsВидеоAdd outgoing messages to the sender's UIВидеоSending a message on a WebRTC Data ChannelВидеоListen for incoming messages on the dataChannel, and update UIВидеоClosing a peer connection and data channel when exiting a roomВидеоTesting WebRTC closure for the user exiting the roomВидеоUsing webrtc-internals to analyze the entire WebRTC processВидеоClosing the second peer's connectionВидеоWebRTC can work without the serverВидеоAnalyzing WebRTC in WiresharkВидеоUse WebRTC to establish a direct peer-to-peer connection - AssessmentЗаданиеFull Course Practice AssessmentЗаданиеFull Course AssessmentЗадание