Major feature update: Add IRC-style chat, performance optimizations, and mobile support

🚀 New Features:
- Real-time IRC-style text chat with commands (/me, /clear, /help, etc.)
- Full mobile optimization with responsive design and touch controls
- Performance monitoring and adaptive video quality
- Configuration-driven settings with config.json

💬 Chat System:
- IRC-style formatting with timestamps and usernames
- Mobile full-screen chat overlay
- Join/leave notifications and system messages
- Message history with automatic cleanup
- Desktop side panel + mobile overlay sync

📱 Mobile Optimizations:
- Touch-friendly controls with emoji icons
- Progressive Web App meta tags
- Orientation change handling
- Mobile-optimized video constraints
- Dedicated mobile chat interface

 Performance Improvements:
- Adaptive video quality based on network conditions
- Video element pooling and efficient DOM operations
- Connection quality monitoring with visual indicators
- Enhanced peer connection management and cleanup
- SDP optimization for better codec preferences

🔧 Technical Changes:
- Renamed main.js to script.js for better organization
- Added comprehensive configuration system
- Fixed port mismatch (3232) and dynamic connection handling
- Improved ICE candidate routing and WebRTC stability
- Enhanced error handling and resource cleanup

🎨 UI/UX Improvements:
- Modern responsive design with light/dark themes
- Connection quality indicator in header
- Better button styling with icons and text
- Mobile-first responsive breakpoints
- Smooth animations and touch feedback
This commit is contained in:
2025-10-02 20:01:03 +01:00
parent 209c690413
commit 357ed5798e
7 changed files with 2051 additions and 441 deletions

58
static/config.json Normal file
View File

@@ -0,0 +1,58 @@
{
"server": {
"port": 3232,
"ssl": true,
"rejectUnauthorized": false
},
"webrtc": {
"iceServers": [
{ "urls": "stun:stun.l.google.com:19302" },
{ "urls": "stun:stun1.l.google.com:19302" }
]
},
"ui": {
"maxUsernameLength": 20,
"defaultTheme": "light",
"showSelfViewByDefault": false
},
"media": {
"defaultVideoEnabled": true,
"defaultAudioEnabled": true,
"videoConstraints": {
"video": {
"width": { "ideal": 640, "max": 1280 },
"height": { "ideal": 480, "max": 720 },
"frameRate": { "ideal": 15, "max": 30 }
},
"audio": {
"echoCancellation": true,
"noiseSuppression": true,
"autoGainControl": true
}
},
"adaptiveQuality": {
"enabled": true,
"profiles": {
"low": { "width": 320, "height": 240, "frameRate": 10, "bitrate": 150000 },
"medium": { "width": 640, "height": 480, "frameRate": 15, "bitrate": 500000 },
"high": { "width": 1280, "height": 720, "frameRate": 30, "bitrate": 1500000 }
},
"defaultProfile": "medium"
}
},
"performance": {
"maxConnections": 8,
"enableStats": true,
"statsInterval": 5000,
"connectionTimeout": 30000,
"iceGatheringTimeout": 10000
},
"chat": {
"enabled": true,
"maxMessageLength": 500,
"maxHistoryLength": 1000,
"showTimestamps": true,
"allowEmoji": true,
"autoScroll": true
}
}