mirror of
https://github.com/xtr-dev/rondevu-demo.git
synced 2025-12-10 02:43:23 +00:00
refactor: Update demo to use RondevuPeer with state management
- 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>
This commit is contained in:
66
CLAUDE.md
Normal file
66
CLAUDE.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# 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:**
|
||||
```javascript
|
||||
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
|
||||
|
||||
1. **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
|
||||
|
||||
2. **No candidates gathered:**
|
||||
- Check STUN/TURN server URLs
|
||||
- Verify firewall isn't blocking UDP ports
|
||||
- Check TURN server is running
|
||||
|
||||
3. **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
|
||||
|
||||
## 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
|
||||
Reference in New Issue
Block a user