Der Worker nutzt Cloudflare Durable Objects für den Echtzeit-WebSocket. Jeder „Raum" für die Zusammenarbeit entspricht einem Durable Object mit persistenten WebSocket-Verbindungen. Änderungen werden sofort (<1 Sekunde) an alle Mitarbeiter übertragen.
Der Server sieht nur AES-256-GCM-verschlüsselte Blobs — keine Kenntnis der Daten.
npm install -g wrangler
wrangler login
→ Öffne den Browser und klicke auf „Allow"
cd worker/
wrangler kv namespace create ROOMS
→ Der Befehl zeigt eine ID an. Aktualisieren Sie wrangler.toml:
[[kv_namespaces]]
binding = "ROOMS"
id = "IHRE_ID_HIER"
wrangler deploy
→ Zeigt die URL des Workers an: https://mg-sync.IHR-SUBDOMAIN.workers.dev
curl "https://mg-sync.IHR-SUBDOMAIN.workers.dev/room/test/presence?client=test1"
# Sollte zurückgeben: {"count":0}
Die URL des Workers ist in MasterGantt bereits vorausgefüllt (Einstellungen → Zusammenarbeit → Server). Um Ihren eigenen Worker zu verwenden, ersetzen Sie die URL.
Nach der Änderung von sync-worker.js:
cd worker/
wrangler deploy
Das war's schon — die Bereitstellung dauert ca. 15 Sekunden.
Cloudflare-Konto : steevebecker
Subdomain : mastergantt.workers.dev
Worker-URL : https://mg-sync.mastergantt.workers.dev
KV-Namespace-ID : c2fe1889c94b4d55ad68f9d244bd812f
Tarif : Workers Paid ($5/Monat)
| Datei | Rolle |
|---|---|
sync-worker.js | Haupt-Worker + Durable Object SyncRoom |
wrangler.toml | Bereitstellungskonfiguration (KV, DO-Bindungen) |
Client A (Browser) Cloudflare Worker Client B (Browser)
| | |
|-- WebSocket connect ------>| |
| |<-- WebSocket connect ----|
| | |
|-- WS: encrypted blob ----->| |
| DO broadcast |
| |---> WS: encrypted blob ->|
| | entschlüsseln + merge
| | |
| Komponente | Kostenloser Tarif | Workers Paid ($5/Monat) |
|---|---|---|
| Worker-Anfragen | 100.000/Tag | 10 Mio./Tag |
| Durable Objects | — | 0,15 $/Mio. Anfragen |
| WebSocket-Nachrichten | — | 0,50 $/Mio. Nachrichten |
| KV-Lesevorgänge | 100.000/Tag | Unbegrenzt |
| KV-Schreibvorgänge | 1.000/Tag | Unbegrenzt |
Realistische Schätzung: 10 aktive Nutzer × 8 Std. = ~0,05 $/Tag = ~1,50 $/Monat an zusätzlichen Kosten.
Um sync.mastergantt.com zu verwenden:
sync.mastergantt.comStellen Sie den Ordner worker/ bereit — sie stellen ihn auf ihrem eigenen Cloudflare-Konto bereit. Der Worker sieht nur verschlüsselte Blobs, keine unverschlüsselten Daten.
| Problem | Lösung |
|---|---|
| 500 Internal Error | wrangler tail, um die Logs in Echtzeit anzuzeigen |
| WebSocket stellt keine Verbindung her | Überprüfen Sie, ob der Tarif Workers Paid ist (DO erforderlich) |
| Blobs nicht empfangen | Überprüfen Sie, ob beide Clients denselben Raum/dasselbe Passwort verwenden |
| „KV put limit exceeded" | Wechseln Sie zum Paid-Tarif oder warten Sie auf den täglichen Reset |
| Bereitstellung fehlgeschlagen | wrangler login, um das Token zu erneuern |
Der Standardserver ist einsatzbereit. Die Bereitstellung eines eigenen Workers ist nur bei besonderen Souveränitätsanforderungen sinnvoll.
MasterGantt herunterladen