Zum Inhalt

Live-Sync — Mehrere Geräte im Stab

ℹ️ Hinweis (Diátaxis): Sektion in drei Teile gesplittet — 18-A How-to (Sync aktivieren in 5 Schritten), 18-B Reference (Modi, Ports, Sync-Scope), 18-C Explanation (CRDT-/Yjs-/mDNS-Architektur).


18-A How-to: Live-Sync aktivieren [How-to]

So teilen Sie das Lagebild zwischen ELW-Laptop und Kartenführer-iPad in Echtzeit.

18-A.1 Sync-Dialog öffnen

Klicken Sie auf das Sync-Badge oben rechts in der Topbar. Es öffnet sich der Sync-Dialog:

Sync-Dialog mit Eingabefeldern für Raum-ID und Gerätename, einem
Drop-down für Signaling-Modus (Öffentlich / LAN) sowie der Peer-Liste
unten. Ein „Sync aktivieren"-Button schließt die Verbindung.

18-A.2 Raum-ID festlegen

Geben Sie eine Raum-ID ein. Default ist die Einsatz-Nr. (z. B. E-20260424-1430). Erlaubt sind 4–64 Zeichen aus A-Z 0-9 . - _.

🚨 Warnung: Verwenden Sie keine Klarnamen oder Adressen in der Raum-ID. Die ID wird (gehasht) an den Signaling-Server übermittelt.

18-A.3 Signaling-Modus wählen

Modus Wann verwenden
Öffentlich (Internet) Standortverteilte Einsatzleitungen, Internet vorhanden
LAN (offline) Vereins-Setup im selben WLAN, ohne Internet-Beteiligung — DSGVO-freundlichste Variante

18-A.4 Sub-Modus (nur LAN): Host oder Join?

Im LAN-Modus muss genau ein Gerät den Signaling-Server hosten — die anderen verbinden sich darauf:

Wenn dieses Gerät … Wählen Sie
ELW-Laptop / Stations-PC (immer da, hat stabile IP) Host
Kartenführer-iPad / mobiles Gerät (verbindet sich) Join

18-A.5 Geräte-Name + Aktivieren

  1. Vergeben Sie einen Gerätenamen (z. B. „ELW-Laptop", „Kartenführer-iPad") — dieser Name wird anderen Peers angezeigt.
  2. Klicken Sie auf Sync aktivieren.
  3. Im Join-Modus erscheint die Liste aller mDNS-entdeckten Hosts — wählen Sie den passenden aus.
  4. Sobald die Verbindung steht, sehen Sie unter Peer-Liste alle verbundenen Geräte mit grünem Punkt.

18-A.6 Peer-Cursor sichtbar machen

Sobald Sync aktiv ist, sehen Sie die Maus-Cursor der anderen Peers auf Ihrer Karte — jeder Peer hat eine eindeutige Farbe + Namens-Label. Nach 15 s Inaktivität verschwindet ein Cursor automatisch.

18-A.7 Sync deaktivieren

Klicken Sie im Sync-Dialog auf Deaktivieren. Im Host-Modus wird zusätzlich der lokale Server gestoppt und der mDNS-Service zurückgezogen.

💡 Tipp: Bei Übungen und Einsätzen legen Sie im Vorfeld fest, welches Gerät Host ist. Die Sub-Modus-Wahl wird im DSGVO-Settings- Dialog persistiert — Geräte, die immer in derselben Rolle laufen, müssen das nicht bei jedem Einsatz neu wählen.


18-B Reference: Modi, Ports, Sync-Scope [Reference]

18-B.1 Signaling-Modi

Modus Transport Internet nötig? Latenz
Öffentlich WebRTC-P2P (UDP) + Public-Signaling-Server ja < 100 ms (P2P)
LAN — Host y-websocket-Relay (TCP) auf Port 47833 + WebRTC-P2P nein < 50 ms
LAN — Join Verbindung zu LAN-Host via mDNS-Discovery oder manuelle ws-URL nein < 50 ms

18-B.2 Ports und Service-Identifier

Port / Service Verwendung
TCP 47832 Tile-Server (Karten-Kacheln-Cache)
TCP 47833 y-websocket-Relay (LAN-Sync)
WebRTC UDP (variabel) P2P-Yjs-Updates
mDNS Service _sarmission._tcp.local Auto-Discovery im LAN

18-B.3 Synchronisierter Sync-Scope

Live-synchronisiert werden:

  • Einheiten (Anlegen / Ändern / Löschen / Statuswechsel)
  • Suchgebiete (Polygone / POA / POD / Zuweisungen / Vertex-Edits)
  • POIs
  • Tagebuch-Einträge inkl. Bearbeitungen + Löschungen
  • IPP + Koester-Ringe (Vermisstenprofil)
  • Tactical Signs (DV-101)
  • Peer-Cursor auf der Karte
  • Undo / Redo (Cmd+Z wirkt auf alle Peers)

Nicht synchronisiert (lokal je Gerät):

  • Stammdaten (Hunde / Personen / Alarmgruppen / Adressbuch)
  • Karten-Layer-Auswahl (Topo / OSM / Satellit)
  • Karten-Zoom / -Pan
  • Tile-Cache
  • DSGVO-Settings + Encryption-Status

18-B.4 Browser-Kompatibilität

  • ✅ macOS-Safari (Desktop + iPad-Safari)
  • ✅ Chrome (Desktop + Android)
  • ✅ Firefox
  • ⚠️ Edge (WebRTC-Relay teilweise instabil bei Microsoft-Defender- Firewall — wechseln Sie zu LAN-Modus)

18-C Explanation: CRDT, Yjs, WebRTC, mDNS [Explanation]

🔧 Fortgeschritten: Diese Sektion erklärt die Sync-Architektur für Power-User und Datenschutzbeauftragte. Für die Bedienung der Software ist sie nicht erforderlich.

18-C.1 Conflict-Free Replicated Data Type (CRDT)

Wenn zwei Einsatzleiter:innen gleichzeitig denselben Datenpunkt ändern (z. B. den Status einer Einheit), muss die Software einen konfliktfreien Merge garantieren — niemand will, dass im Echteinsatz plötzlich Daten überschrieben werden, ohne dass es bemerkt wird.

CRDTs (Conflict-Free Replicated Data Types) sind Datenstrukturen mit einer mathematisch garantierten Konflikt-Auflösung: ungeachtet der Reihenfolge der Updates konvergieren alle Replikate auf denselben Endzustand.

SARmission verwendet die JavaScript-Bibliothek Yjs, die das operationally-transformed CRDT-Modell implementiert.

18-C.2 Zwei parallele Transport-Wege

              ┌──────────┐
              │ ELW-Laptop│
              └─────┬────┘
       ┌────────────┼────────────┐
       │            │            │
       ▼            ▼            ▼
  WebRTC-P2P  y-websocket    mDNS-Discovery
   (UDP)        (TCP)         (Service-Annonce)
       │            │            │
       └─────────┬──┘            │
                 ▼                │
         ┌─────────────┐          │
         │ Karten-iPad │ ◄────────┘
         └─────────────┘
  • WebRTC-P2P (UDP): niedrige Latenz, direkter Peer-zu-Peer-Kanal — scheitert aber an strikten Firewalls (z. B. Windows-Defender ohne Ausnahme oder Vereinsheim-WLAN mit Multicast-Sperre).
  • y-websocket-Relay (TCP, ab v3.4.0): läuft parallel zu WebRTC im Vereins-LAN. Wenn die WebRTC-UDP-Pakete blockiert werden, übernimmt TCP nahtlos. Lösung des v2.x-Bugs „Sync bricht nach 10 s ab".

18-C.3 mDNS-Auto-Discovery

Im LAN-Modus annoncieren sich Hosts via Bonjour/mDNS als _sarmission._tcp.local-Service. Andere SARmission-Instanzen im selben WLAN entdecken den Host innerhalb von ~500 ms.

⚠️ Achtung: Manche Vereinsheim-WLANs blockieren Multicast (typisch bei Gast-WLANs). Dann funktioniert mDNS nicht — fallen Sie auf manuelle ws://-URL-Eingabe zurück.

18-C.4 Sicherheits-Modell

Aspekt Wer sieht was?
Yjs-Daten nur Peers im selben Raum mit selber Raum-ID — niemals der Signaling-Server
WebRTC-Signaling-Server sieht nur den gehashten Raum-ID-Token für Peer-Matching, keine Lage-Daten
LAN-Modus kein Internet-Server beteiligt → DSGVO-freundlichste Variante
Encryption-at-Rest gilt nur für lokale Persistenz (siehe § 31). Sync-Daten in Transit sind via WebRTC-DTLS / TLS verschlüsselt

🌐 BOS-Übergreifend: Für Einsätze mit Personen-Daten ist der LAN-Modus die DSGVO-empfohlene Variante. Der Öffentlich-Modus ist für standortverteilte Einsatzleitungen praktisch, aber sollte über die Vereins-Datenschutz-Beauftragten freigegeben sein.

18-C.5 Undo ist sync-fest

Drückt jemand Cmd+Z, wird der wiederhergestellte Zustand als neuer Yjs-Update über den Sync-Kanal an alle Peers verteilt. Kein Ghost-Zustand, kein Diverge.

18-C.6 Auto-Reconnect

Bei Konfig-Wechsel (z. B. WLAN-Wechsel, Sleep/Wake) versucht SARmission alle 5 Sekunden einen Reconnect. Die Yjs-Bibliothek synchronisiert die zwischenzeitlich angefallenen lokalen Updates automatisch mit allen Peers, sobald die Verbindung wieder steht.

18-C.7 Quellen + weitere Lektüre

  • Yjs: https://yjs.dev/
  • CRDT-Theorie: Shapiro et al., „Conflict-Free Replicated Data Types", INRIA Research Report 7506, 2011
  • WebRTC-Standard: RFC 8825-8848 (IETF)
  • mDNS / Bonjour: RFC 6762 / 6763