Offline-Modus
Lokale Datenbank, ausstehende Warteschlange, Synchronisierungsverhalten
Wie der Offline-Modus funktioniert
Die Scanner-App ist so konzipiert, dass sie nach der Erstregistrierung vollständig offline funktioniert. Die gesamte Ticketvalidierung (Signaturverifizierung, Ablaufprüfungen, Duplikaterkennung) wird lokal mit zwischengespeicherten Daten durchgeführt. Nur der Check-in-Bestätigungsschritt erfordert eine Netzwerkverbindung, und selbst dieser wird in die Warteschlange eingereiht, wenn das Netzwerk nicht verfügbar ist.
Lokale Datenbank
Die App pflegt eine lokale SQLite-Datenbank mit folgenden Daten:
| Daten | Zweck |
|---|---|
| Registrierungen | Registrierte Veranstaltungen mit API-Schlüsseln und Gate-Zuweisungen |
| Ausstellerschlüssel | Zwischengespeicherte öffentliche Schlüssel zur Verifizierung von Ticketsignaturen |
| Scan-Verlauf | Aufzeichnung jedes Scanversuchs und seines Ergebnisses |
| Ausstehende Check-ins | Warteschlange der Check-ins, die auf Synchronisierung mit dem Server warten |
| Ticketstatus | Zwischengespeicherte Ticketstatus (widerrufen, eingecheckt), die vom Server heruntergeladen wurden |
Diese lokalen Daten ermöglichen es dem Scanner, Tickets zu validieren und bereits verwendete oder widerrufene Tickets auch ohne Internetverbindung zu erkennen.
Warteschlange für ausstehende Check-ins
Wenn Sie ein Ticket offline als verwendet markieren, wird der Check-in in eine ausstehende Warteschlange aufgenommen.
Ausstehende Check-ins anzeigen
Gehen Sie zu Menü > Ausstehende Synchronisierung. Der Menüpunkt zeigt ein Badge mit der Anzahl der ausstehenden Einträge.
Wenn keine ausstehenden Einträge vorhanden sind, zeigt der Bildschirm "Alles synchronisiert."
Jeder ausstehende Eintrag zeigt:
- Ticketkennung
- Veranstaltungsname
- Zeitpunkt des letzten Synchronisierungsversuchs (falls ein Wiederholungsversuch unternommen wurde)
Manuelle Wiederholung
Tippen Sie auf Jetzt wiederholen, um sofort zu versuchen, alle ausstehenden Check-ins zu synchronisieren. Dies ist nützlich, wenn Sie wissen, dass die Verbindung wiederhergestellt wurde.
Automatische Synchronisierung
Die App versucht automatisch, ausstehende Check-ins zu synchronisieren, wenn:
- Die Netzwerkverbindung nach einem Offline-Zustand wiederhergestellt wird
- Die App in den Vordergrund zurückkehrt
In den meisten Fällen ist kein manuelles Eingreifen erforderlich.
Ticketstatus-Synchronisierung
Die App lädt regelmäßig aktualisierte Ticketstatus vom Server für jede registrierte Veranstaltung herunter. Diese Synchronisierung:
- Läuft alle paar Minuten im Hintergrund
- Wird auch ausgelöst, wenn die App in den Vordergrund zurückkehrt
- Lädt den aktuellen Status aller Tickets herunter (welche widerrufen sind, welche bereits eingecheckt sind)
Dies ermöglicht es dem Scanner, widerrufene oder bereits verwendete Tickets auch im Offline-Modus abzulehnen, da der letzte bekannte Status lokal zwischengespeichert ist.
Idempotenz
Jedem Check-in wird bei der Erstellung ein eindeutiger Bezeichner (Idempotenzschlüssel) zugewiesen. Das bedeutet:
- Es ist sicher, ausstehende Check-ins mehrfach zu wiederholen
- Der Server dedupliziert basierend auf diesem Schlüssel
- Es besteht kein Risiko, dass ein Ticket aufgrund von Netzwerkwiederholungen doppelt als verwendet markiert wird
Verbindungserkennung
Die App überwacht die Netzwerkverbindung in Echtzeit. Wenn die Verbindung abbricht:
- Scannen und Validierung funktionieren weiterhin normal
- Check-ins werden lokal in die Warteschlange eingereiht, anstatt an den Server gesendet zu werden
- Die Meldung "Zugelassen (Synchronisierung ausstehend)" erscheint nach jedem Offline-Check-in
Wenn die Verbindung wiederhergestellt wird:
- Die ausstehende Warteschlange wird automatisch abgearbeitet
- Erfolgreich synchronisierte Einträge werden aus der Warteschlange entfernt
- Der Scan-Verlauf wird für synchronisierte Tickets von "ausstehend" auf "gültig" aktualisiert
- Fehlgeschlagene Einträge verbleiben für den nächsten Wiederholungsversuch
Hinweis: Wenn Sie den Scan-Verlauf betrachten, während eine Hintergrundsynchronisierung abgeschlossen wird, müssen Sie möglicherweise die Ansicht verlassen und zurückkehren, um die aktualisierten Status zu sehen.
Bewährte Vorgehensweisen
- Registrieren Sie Ihr Gerät, während Sie online sind. Die Erstregistrierung erfordert eine Internetverbindung, um Schlüssel und Ticketstatus herunterzuladen.
- Synchronisieren Sie vor Veranstaltungsbeginn. Öffnen Sie die App bei bestehender Verbindung, um sicherzustellen, dass Sie die aktuellsten Ticketstatus und öffentlichen Schlüssel haben.
- Prüfen Sie die Anzahl der ausstehenden Synchronisierungen nach der Veranstaltung, um sicherzustellen, dass alle Check-ins synchronisiert wurden.
- Entfernen Sie eine Veranstaltung nicht, bis alle ausstehenden Check-ins synchronisiert wurden. Die App blockiert die Entfernung, wenn ausstehende Einträge vorhanden sind.