Offline modus
Lokale database, wachtrij, synchronisatiegedrag
Hoe de offline modus werkt
De Scanner-app is ontworpen om volledig offline te werken na de initiele inschrijving. Alle ticketvalidatie (handtekeningverificatie, vervalcontroles, duplicaatdetectie) wordt lokaal uitgevoerd met gecachte gegevens. Alleen de check-in bevestigingsstap vereist een netwerkverbinding, en zelfs die wordt in de wachtrij geplaatst als het netwerk niet beschikbaar is.
Lokale database
De app onderhoudt een lokale SQLite-database met de volgende gegevens:
| Gegevens | Doel |
|---|---|
| Inschrijvingen | Ingeschreven evenementen met API-sleutels en poorttoewijzingen |
| Uitgeverssleutels | Gecachte publieke sleutels voor het verifieren van tickethandtekeningen |
| Scangeschiedenis | Overzicht van elke scanpoging en het resultaat |
| Wachtende check-ins | Wachtrij van check-ins die wachten op synchronisatie met de server |
| Ticketstatussen | Gecachte ticketstatussen (ingetrokken, ingecheckt) gedownload van de server |
Deze lokale gegevens stellen de scanner in staat om tickets te valideren en reeds gebruikte of ingetrokken tickets te detecteren, zelfs zonder internetverbinding.
Wachtrij voor wachtende check-ins
Wanneer u een ticket als gebruikt markeert terwijl u offline bent, wordt de check-in toegevoegd aan een wachtrij.
Wachtende check-ins bekijken
Ga naar menu > Wachtende synchronisatie. Het menu-item toont een badge met het aantal wachtende items.
Als er geen wachtende items zijn, toont het scherm "Alles gesynchroniseerd."
Elk wachtend item toont:
- Ticketidentificatie
- Evenementnaam
- Laatste synchronisatiepoging (als er een nieuwe poging is gedaan)
Handmatig opnieuw proberen
Tik op Nu opnieuw proberen om direct te proberen alle wachtende check-ins te synchroniseren. Dit is handig wanneer u weet dat de verbinding is hersteld.
Automatische synchronisatie
De app probeert automatisch wachtende check-ins te synchroniseren wanneer:
- De netwerkverbinding is hersteld na offline te zijn geweest
- De app terugkeert naar de voorgrond
In de meeste gevallen is er geen handmatige actie nodig.
Ticketstatussynchronisatie
De app downloadt periodiek bijgewerkte ticketstatussen van de server voor elk ingeschreven evenement. Deze synchronisatie:
- Draait op de achtergrond om de paar minuten
- Wordt ook geactiveerd wanneer de app terugkeert naar de voorgrond
- Downloadt de huidige status van alle tickets (welke zijn ingetrokken, welke zijn al ingecheckt)
Dit stelt de scanner in staat om ingetrokken of reeds gebruikte tickets te weigeren, zelfs wanneer u offline bent, omdat de laatst bekende status lokaal is gecacht.
Idempotentie
Elke check-in krijgt een unieke identificatie (idempotentiesleutel) bij aanmaak. Dit betekent:
- Het is veilig om wachtende check-ins meerdere keren opnieuw te proberen
- De server dedupliceert op basis van deze sleutel
- Er is geen risico dat een ticket twee keer als gebruikt wordt gemarkeerd door netwerkpogingen
Connectiviteitsdetectie
De app bewaakt de netwerkverbinding in realtime. Wanneer de verbinding wegvalt:
- Scannen en validatie blijven normaal werken
- Check-ins worden lokaal in de wachtrij geplaatst in plaats van naar de server te worden verstuurd
- Het bericht "Toegelaten (wacht op synchronisatie)" verschijnt na elke offline check-in
Wanneer de verbinding is hersteld:
- De wachtrij wordt automatisch geleegd
- Succesvol gesynchroniseerde items worden uit de wachtrij verwijderd
- De scangeschiedenis wordt bijgewerkt van "in afwachting" naar "geldig" voor gesynchroniseerde tickets
- Mislukte items blijven staan voor de volgende poging
Opmerking: Als u de scangeschiedenis bekijkt terwijl een achtergrondsynchronisatie wordt voltooid, moet u mogelijk het scherm verlaten en terugkeren om de bijgewerkte statussen te zien.
Best practices
- Schrijf uw apparaat in terwijl u online bent. De initiele inschrijving vereist een internetverbinding om sleutels en ticketstatussen te downloaden.
- Synchroniseer voor aanvang van het evenement. Open de app terwijl u verbonden bent om te zorgen dat u over de nieuwste ticketstatussen en publieke sleutels beschikt.
- Controleer het aantal wachtende synchronisaties na het evenement om te verzekeren dat alle check-ins zijn gesynchroniseerd.
- Verwijder een evenement niet totdat alle wachtende check-ins zijn gesynchroniseerd. De app blokkeert verwijdering als er wachtende items zijn.