Course Outline
Media Devices Handling
Browser Permissions with navigator.permissions
- Hardware Access:
- Webcam
- Microphone
- Optional Permissions:
- Geolocation
- Notifications
- Clipboard (read/write)
- Querying permissions and checking status
- Limitations and browser compatibility considerations
Reading Media Devices with navigator.mediaDevices
- Enumerating available devices
- Managing dynamic device changes
Cross-browser Compatibility
- API Usage:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Implementing fallback strategies for Safari
Media Device Handling
- Device initialization via getUserMedia(constraints)
- Configuring media device constraints
- Controlling the start and stop of media streams
- Reacting to device change events
Recording Devices with MediaRecorder
- Managing stream start/stop and recording
- Downloading .webm files
- Generating real-time waveform previews
Optional Add-ons:
- Saving audio in .wav format using ScriptProcessorNode
- Visualizing audio FFT spectrum
- Displaying volume bars in decibels
- Implementing voice recognition via webkitSpeechRecognition
Peer Connection
Signaling Servers
- Bidirectional Channel Options:
- WebSocket
- Socket.io
- SignalR
- Defining message structure
- Building a simplified WebRTC client
- Executing the full signaling flow
Video Chat via WebRTC
- Architecture overview: Node.js + ws
- Implementing the WebRTC client with RTCPeerConnection
- Conducting local end-to-end testing
Optional Features:
- Handling call termination (closing connection, stopping media)
- Supporting group calls in multi-user rooms
- Implementing simple token-based authentication
Screen Sharing
- Leveraging getDisplayMedia()
- Reviewing architecture and available options
Session Description Protocol (SDP)
- Introduction to SDP and its components
- Reading and interpreting SDP data
- Codecs:
- Audio & Video
- Negotiation mechanisms and control
- Implementing fallback strategies
WebRTC Statistics with getStats()
- Understanding different statistic types
- Interpreting statistical data
- Creating live bitrate and jitter charts
- Developing quality adaptation strategies
All of the topic are
- Hands-on use-case
Requirements
This course is well-suited for frontend and full-stack developers, technical architects, and engineers responsible for developing browser-based real-time communication features such as video chat, screen sharing, or audio streaming. Participants are expected to have a solid understanding of JavaScript and web technologies, while experience with Node.js and WebSocket-based communication is considered beneficial but optional.
Testimonials (3)
The training helped me expand my knowledge and understanding of Burp Suite. I also realized that what I had learned through self-study was still quite limited. This training was very helpful to me as a QA because Burp Suite is a valuable tool for performing security testing and improving the overall quality of application testing. I will continue exploring this tool and learning more about its features and capabilities.
Rea Mendez - BAKAWAN Data Anallytics Inc.
Course - OWASP Top 10 2025
I really enjoyed learning about AI attacks and the tools out there to begin practicing and actively using for security testing. I took a lot of knowledge away which I didn't have at the beginning and the course met what I hoped it would be. My favorite part shown from the training was Comet Browser and was amazed at what it could do. Definitely something will be looking into more. Overall it was a great course and enjoyed learning all OWASP GenAI Top 10.
Patrick Collins - Optum
Course - OWASP GenAI Security
Hands-on, exercises, in-person helping and questioning.