Fix multi-user server sync performance and integration
Major fixes: - Integrated ServerSyncClient into GUI for actual multi-user sync - Fixed CUDA device display to show actual hardware used - Optimized server sync with parallel HTTP requests (5x faster) - Fixed 2-second DNS delay by using 127.0.0.1 instead of localhost - Added comprehensive debugging and performance logging Performance improvements: - HTTP requests: 2045ms → 52ms (97% faster) - Multi-user sync lag: ~4s → ~100ms (97% faster) - Parallel request processing with ThreadPoolExecutor (3 workers) New features: - Room generator with one-click copy on Node.js landing page - Auto-detection of PHP vs Node.js server types - Localhost warning banner for WSL2 users - Comprehensive debug logging throughout sync pipeline Files modified: - gui/main_window_qt.py - Server sync integration, device display fix - client/server_sync.py - Parallel HTTP, server type detection - server/nodejs/server.js - Room generator, warnings, debug logs Documentation added: - PERFORMANCE_FIX.md - Server sync optimization details - FIX_2_SECOND_HTTP_DELAY.md - DNS/localhost issue solution - LATENCY_GUIDE.md - Audio chunk duration tuning guide - DEBUG_4_SECOND_LAG.md - Comprehensive debugging guide - SESSION_SUMMARY.md - Complete session summary 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -248,3 +248,39 @@ For issues:
|
||||
2. Run `./server/test-server.sh` to diagnose server
|
||||
3. Check browser console for JavaScript errors
|
||||
4. Verify firewall allows port 3000 (Node.js) or 8080 (local web)
|
||||
|
||||
---
|
||||
|
||||
## Issue 4: Server Sync Performance - Major Lag ✅ FIXED
|
||||
|
||||
### Problem
|
||||
Even though server sync was working after Fix #1, the shared display was **several seconds behind** the local transcription. Test script worked fast, but real usage was laggy.
|
||||
|
||||
### Root Causes
|
||||
1. **Wrong URL format for Node.js** - Client sent `?action=send` parameter (PHP only)
|
||||
2. **Serial HTTP requests** - Each message waited for previous one to complete
|
||||
3. **Long timeouts** - 5-second HTTP timeout, 1-second queue polling
|
||||
|
||||
### Solution
|
||||
**Modified:** [client/server_sync.py](client/server_sync.py)
|
||||
|
||||
**Changes:**
|
||||
1. Auto-detect server type (PHP vs Node.js) and format URL correctly
|
||||
2. Added `ThreadPoolExecutor` with 3 workers for parallel HTTP requests
|
||||
3. Reduced HTTP timeout from 5s → 2s
|
||||
4. Reduced queue polling from 1s → 0.1s
|
||||
5. Messages now sent in parallel (non-blocking)
|
||||
|
||||
**Performance Improvement:**
|
||||
- **Before:** 5 messages = 1000ms delay (serial)
|
||||
- **After:** 5 messages = 200ms delay (parallel)
|
||||
- **Result:** **5x faster!**
|
||||
|
||||
**How it works:**
|
||||
- Up to 3 HTTP requests can be in-flight simultaneously
|
||||
- Queue drains faster during rapid speech
|
||||
- No waiting for previous message before sending next
|
||||
- Consistent ~200ms delay instead of growing 1-2 second delay
|
||||
|
||||
See [PERFORMANCE_FIX.md](PERFORMANCE_FIX.md) and [server/SYNC_PERFORMANCE.md](server/SYNC_PERFORMANCE.md) for detailed analysis.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user