A standalone browser application for watching and downloading streams from the Dokibada WebRTC signaling platform. Built with vanilla HTML, CSS, and JavaScript (zero dependencies).
The Dokibada Viewer connects to a Dokibada signaling server, discovers available firms and streams, and establishes a WebRTC data channel to receive video files directly from the firm's peer server. Video data flows peer-to-peer through TURN relay -- the signaling server never touches media.
sample-client/
├── index.html # Main page — loads CSS and JS
├── css/
│ └── style.css # Glassmorphism stylesheet
├── js/
│ ├── app.js # Main app logic, event wiring
│ ├── signaling.js # WebSocket signaling client
│ ├── webrtc.js # WebRTC peer connection handler
│ └── ui.js # UI rendering and DOM updates
└── README.md # This file
Serve the sample-client/ directory with any static file server:
# Python
cd sample-client
python3 -m http.server 3002
# Node.js (npx)
npx serve sample-client -p 3002
# PHP
php -S localhost:3002 -t sample-clientThen open http://localhost:3002 in your browser.
- Enter the API URL in the header input field (default:
https://api.visionlee.com). - Click Connect to establish a WebSocket connection to the signaling server.
- The app fetches TURN credentials, registers as a viewer, and loads available firms and streams.
- Switch between Firms and Streams using the tab bar.
- Click "Watch / Download" on any live stream to start a WebRTC data channel transfer.
- The video player shows download progress. Once complete, the video plays automatically.
- Click "Download" to save the received file to disk.
- The Event Log at the bottom shows all connection events for debugging.
You can pre-fill the API URL with a query parameter:
http://localhost:3002?api=https://api.visionlee.com
- Chrome 76+, Firefox 69+, Safari 14+, Edge 79+
- WebRTC and
RTCPeerConnectionsupport backdrop-filtersupport for full glassmorphism effect (graceful fallback for older browsers)