mirror of
https://github.com/xtr-dev/rondevu-demo.git
synced 2025-12-10 10:53:22 +00:00
- Replace RondevuConnection with RondevuPeer throughout - Add state event listener for better state tracking - Add failed event listener with error details - Configure timeouts for offer/answer operations - Enhanced ICE debugging with candidate pair tracking - Add connection failure detection and logging - Improved error handling and user feedback - Update version to v0.5.0 (State-Based Peer Manager) - Update TURN server configuration to ronde.vu - Add comprehensive logging for troubleshooting 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2.1 KiB
2.1 KiB
Rondevu Demo Development Guidelines
WebRTC Configuration
TURN Server Setup
When configuring TURN servers:
- ✅ DO include the port number in TURN URLs:
turn:server.com:3478 - ✅ DO test TURN connectivity before deploying:
turnutils_uclient -u user -w pass server.com 3478 -y - ✅ DO provide both TCP and UDP transports for maximum compatibility
- ❌ DON'T omit the port number (even if it's the default 3478)
- ❌ DON'T assume TURN works without testing
ICE Configuration
Force Relay Mode for Testing:
const RTC_CONFIG = {
iceServers: [...],
iceTransportPolicy: 'relay' // Forces TURN relay, bypasses NAT issues
};
Use iceTransportPolicy: 'relay' to:
- Test if TURN server is working correctly
- Bypass NAT hairpinning issues (when both peers are on same network)
- Ensure maximum compatibility
Remove or comment out iceTransportPolicy: 'relay' for production to allow direct connections when possible.
Debugging
Enable Detailed ICE Logging
The demo includes detailed ICE candidate logging. Check browser console for:
- 🧊 ICE candidate gathering
- 🧊 ICE connection state changes
- 📤 Candidates sent to server
- 📥 Candidates received from server
- ✅ Successful candidate pairs
- ❌ Failed candidate pairs
Common Issues
-
Connection stuck in "connecting":
- Enable relay-only mode to test TURN
- Check if both peers are behind same NAT (hairpinning issue)
- Verify TURN credentials are correct
-
No candidates gathered:
- Check STUN/TURN server URLs
- Verify firewall isn't blocking UDP ports
- Check TURN server is running
-
Candidates gathered but connection fails:
- Check if TURN relay is actually working (use
turnutils_uclient) - Verify server is filtering candidates by role correctly
- Enable detailed logging to see which candidate pairs are failing
- Check if TURN relay is actually working (use
UI Guidelines
- Show clear connection status (waiting, connecting, connected, failed)
- Display peer role (offerer vs answerer) for debugging
- Provide visual feedback for all user actions
- Use toast notifications for errors and success messages