How ionsoft-lab/webrtc-book works
webrtc-book is a collection of browser and mobile WebRTC learning samples, with separate Go signaling and TURN server programs. The browser workflow is to choose a routed demonstration and exercise media capture, recording, peer connections, or data channels; the one-to-one calling demo adds login, room/user signaling, and local/remote video views. The README describes a wider course scope, including mesh and SFU, but this tree does not establish their implementation. Edges reflect the shown App routing and P2P component calls; backend wiring and unsampled sample internals are not inferred.
Main entry points: App.jsx Sample router · P2PClient.jsx P2P calling UI · Samples.jsx Sample index · Camera.jsx Camera
Components 34
Web sample app
- Sample router
h5-samples/src/App.jsx - Sample index
h5-samples/src/Samples.jsx
Media features
- Camera
h5-samples/src/Camera.jsx - Microphone
h5-samples/src/Microphone.jsx - Canvas capture
h5-samples/src/Canvas.jsx - Screen sharing
h5-samples/src/ScreenSharing.jsx - Video filter
h5-samples/src/VideoFilter.jsx - Resolution
h5-samples/src/Resolution.jsx - Device selection
h5-samples/src/DeviceSelect.jsx - Media settings
h5-samples/src/media-settings/MediaSettings.js - Audio meter
h5-samples/src/volume/AudioVolume.jsx - Record audio
h5-samples/src/RecordAudio.jsx - Record video
h5-samples/src/RecordVideo.jsx - Record screen
h5-samples/src/RecordScreen.jsx - Record canvas
h5-samples/src/RecordCanvas.jsx - Media stream API
h5-samples/src/MediaStreamAPI.jsx - Capture video
h5-samples/src/CaptureVideo.jsx - Capture canvas
h5-samples/src/CaptureCanvas.jsx
RTC and calling
- Peer connection
h5-samples/src/PeerConnection.jsx - Peer video
h5-samples/src/PeerConnectionVideo.jsx - Peer canvas
h5-samples/src/PeerConnectionCanvas.jsx - Data channel
h5-samples/src/DataChannel.jsx - File transfer
h5-samples/src/DataChannelFile.jsx - P2P calling UI
h5-samples/src/p2p/P2PClient.jsx - Call signaling
h5-samples/src/p2p/P2PVideoCall.js - Call login
h5-samples/src/p2p/P2PLogin.jsx - Local video view
h5-samples/src/p2p/LocalVideoView.jsx - Remote video view
h5-samples/src/p2p/RemoteVideoView.jsx
Go services
- Room state
p2p-server/pkg/room/room.go - Room user
p2p-server/pkg/room/user.go - Signaling server
p2p-server/pkg/server/server.go - Socket connection
p2p-server/pkg/server/conn.go - TURN server
turn-server/pkg/server/server.go
Other components
- Learner
Connections 28
- Learner → Sample router: opens
h5-samples/src/App.jsx - Sample router → Sample index: routes to
h5-samples/src/App.jsx - Sample router → Camera: routes to
h5-samples/src/App.jsx - Sample router → Microphone: routes to
h5-samples/src/App.jsx - Sample router → Canvas capture: routes to
h5-samples/src/App.jsx - Sample router → Screen sharing: routes to
h5-samples/src/App.jsx - Sample router → Video filter: routes to
h5-samples/src/App.jsx - Sample router → Resolution: routes to
h5-samples/src/App.jsx - Sample router → Device selection: routes to
h5-samples/src/App.jsx - Sample router → Media settings: routes to
h5-samples/src/App.jsx - Sample router → Audio meter: routes to
h5-samples/src/App.jsx - Sample router → Record audio: routes to
h5-samples/src/App.jsx - Sample router → Record video: routes to
h5-samples/src/App.jsx - Sample router → Record screen: routes to
h5-samples/src/App.jsx - Sample router → Record canvas: routes to
h5-samples/src/App.jsx - Sample router → Media stream API: routes to
h5-samples/src/App.jsx - Sample router → Capture video: routes to
h5-samples/src/App.jsx - Sample router → Capture canvas: routes to
h5-samples/src/App.jsx - Sample router → Peer connection: routes to
h5-samples/src/App.jsx - Sample router → Peer video: routes to
h5-samples/src/App.jsx - Sample router → Peer canvas: routes to
h5-samples/src/App.jsx - Sample router → Data channel: routes to
h5-samples/src/App.jsx - Sample router → File transfer: routes to
h5-samples/src/App.jsx - Sample router → P2P calling UI: routes to
h5-samples/src/App.jsx - P2P calling UI → Call signaling: delegates to
h5-samples/src/p2p/P2PClient.jsx - P2P calling UI → Call login: renders
h5-samples/src/p2p/P2PClient.jsx - P2P calling UI → Local video view: renders
h5-samples/src/p2p/P2PClient.jsx - P2P calling UI → Remote video view: renders
h5-samples/src/p2p/P2PClient.jsx