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:
58
static/config.json
Normal file
58
static/config.json
Normal 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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user