Documentatie / Gidsen / Offline modus
ProtocolspecificatieAPI-referentieGidsen
Documentatie / Gidsen / Offline modus
GUIDE · V1

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.