Aktualisiert am 30.05.2026 · nach dem Ausrollen der Korrekturen 6.61–6.64.
$MIN in version_check.php ist jetzt gleich $CURRENT (=6.66). Jede ältere Version wird zwangsweise auf die aktuelle gehoben.$MIN.| Publikum, MAU | Gleichzeitige WS (Spitze) | Zustand eines einzelnen VPS | Wichtigster Engpass |
|---|---|---|---|
| ≤ 30k | ≤ 3k | Zehnfache Reserve, im Leerlauf | In unserem Stack nichts |
| 30k — 100k | 3k — 10k | Der Zielbereich, komfortabel | Die CPU von Workerman bewältigt Pongs und Ereignisse mühelos. Die Datenbank arbeitet über Primärschlüssel. 500 MB–1 GB RAM für die Sockets. |
| 100k — 200k | 10k — 20k | Betrieb am Limit | Der einzelne Workerman-Prozess überhitzt in der Spitze. Taucht ein Fehler mit abbrechenden WebSockets auf, beginnt die Degradation. |
| > 200k | > 20k | Wir stoßen an die Decke | Phase C ist nötig (Workerman count=4 plus Redis pub/sub für gemeinsames $hosts/$guests). |
| Metric | Vor den Korrekturen | Nach 6.64 | Wo umgesetzt |
|---|---|---|---|
ble_token_renew in der Warteschlange, solange der Besitzer offline ist |
1300 in 4 h | 1 (Dedup über UNIQUE INDEX) | Server — funktioniert mit jedem Client |
| HTTP-Wiederholungen bei Netzstörung | 5 Schlüssel × 1/min = 7200 pro Tag | ~50 pro Tag (30-Minuten-Backoff) | Client 6.64 — ein neues APK ist erforderlich |
| WebSocket-Neuverbindungen bei flatterndem Netz | ~10/min (Wiederholung nach 1 s) | ~1/min (60-s-Backoff) | Client 6.62+ — ein neues APK ist erforderlich |
| Datenbankabfragen bei hello während flatternder WebSockets | ~50/s bei 10 000 Clients | ~5/s | Server — das 5-Sekunden-Limit schützt vor jedem Client |
| Fehlgeschlagene Fire-Ereignisse in den Prefs des Gastes | 60+ pro Tag je Gast mit abgelaufenem Token | 0 | Client 6.63 |
| Recompose-Wellen bei guest_ok | bei jedem numbers_update | nur bei tatsächlicher Änderung | Client 6.64 |
enqueueHostMsg — selbst wenn ein 6.55-Client 1300 identische Verlängerungen schickt, landet nur eine in der Warteschlange.$GLOBALS['apk_url'] in _config.php — der Umzug auf R2 oder ein CDN ist eine Zeile, ohne App-Release.Entscheidung: angehoben $MIN = '6.66'. Jeder alte Client bekommt beim ersten versionCheck einen blockierenden Dialog „App aktualisieren“ (die Oberfläche existiert bereits, siehe App.kt:checkVersionAsync).
Derzeit count=1 — ein einziger PHP-Prozess hält ALLE WebSockets in den Arrays $hosts/$guests/$calls in-memory.
Die konkreten Schwellen:
Was zu tun ist, wenn sich 15 000 nähern:
apt install redis-server).count=4 (entsprechend der Kernanzahl des VPS).$hosts/$guests/$calls in einen Redis-HASH mit TTL.Effect: lineare Skalierung bis 4×, die Decke steigt auf etwa 40 000–60 000 gleichzeitig.
Heute wird das 22-MB-APK jedem Nutzer vom eigenen VPS ausgeliefert. Bei hunderttausend sind das 2,2 TB ausgehender Verkehr pro Release — die eigene Leitung schafft das womöglich nicht oder wird teuer.
In 6.64 vorbereitet:
$GLOBALS['apk_url'] in _config.php — eine einzige Wahrheitsquelle für die Adresse.download.php und version_check.php lesen sie von dort.Wenn der Umzug nötig wird:
entrixy.apk.apk.entrixy.com über das Cloudflare-CDN._config.php: $GLOBALS['apk_url'] = 'https://apk.entrixy.com/entrixy.apk';assembleRelease add r2 cp app-release.apk apk-bucket/entrixy.apk.Beim heutigen Maßstab — Dutzende Testinstallationen — ist kein Umzug nötig.
sudo supervisorctl restart dialer-ws.