Een speler die na een update van een PWA casino nog steeds de oude lobby ziet met bonusvoorwaarden die allang zijn aangepast, is geen zeldzaamheid. Het probleem zit zelden in de server of in de cache-instellingen van de browser, maar in de service worker die de vorige versie van de applicatie blijft serveren. Wie een casino op mobiel beheert of als partner verkeer doorstuurt, doet er goed aan om via DevTools > Application > Service Workers te controleren welke versie daadwerkelijk actief is. Deze deep-dive laat zien hoe versiebeheer bij een Progressive Web App werkt, waar het misgaat en welke controles je zelf kunt uitvoeren.
Hoe een casino-PWA zijn versie beheert met een service worker
Een Progressive Web App is in essentie een mobiele website met een service worker: een script dat tussen de browser en het netwerk staat en verzoeken onderschept. Bij de eerste installatie slaat die service worker kernbestanden op in de Cache Storage, zodat de applicatie snel opent en ook bij een zwakke verbinding blijft werken. Bij een volgende bezoek controleert de browser of het service worker-script is gewijzigd, downloadt het nieuwe bestand en plaatst het in een wachtrij. Tot het moment dat de nieuwe versie wordt geactiveerd, blijft de oude service worker de pagina’s bedienen.
Dat activatiemoment is precies waar versiebeheer interessant wordt. Er zijn grofweg twee strategieën. Bij de standaardaanpak wacht de nieuwe service worker tot alle tabbladen van de oude versie zijn gesloten, wat op een telefoon betekent dat de speler de applicatie volledig moet afsluiten. Bij een agressievere aanpak roept het script skipWaiting aan en neemt de nieuwe versie direct de controle over, eventueel gevolgd door een automatische herlaadactie via clients.claim. Een casino-PWA die kiest voor skipWaiting levert snellere updates, maar moet ervoor zorgen dat openstaande sessies, lopende spellen en tussenstanden in het live casino niet abrupt worden onderbroken.
De Winzoria app, die als Progressive Web App draait en niet in de App Store of Google Play Store staat, is een voorbeeld van een platform waar dit soort afwegingen dagelijks spelen. Het platform combineert casino, live casino en sportweddenschappen, dus een update kan tegelijk de lobby-indeling, de bonusvoorwaarden en de odds-weergave raken. Zonder goed geconfigureerde skipWaiting-logica kan een speler na een deploy nog een oude spellobby zien met verouderde bonusvoorwaarden, terwijl de server al nieuwe regels hanteert. Dat verschil tussen wat de speler ziet en wat het platform administratief verwacht, is de bron van de meeste klachten na een release.
Wat DevTools je precies vertelt over de actieve versie
Open de applicatie in Google Chrome op desktop of via chrome://inspect op een aangesloten Android-toestel, en ga naar het tabblad Application. Onder het kopje Service Workers zie je per geregistreerde scope welke service worker actief is, welke status die heeft (activated, waiting of redundant) en welke versie er in de wachtrij staat. Een status “waiting” betekent dat de nieuwe versie al is gedownload maar nog niet de controle heeft overgenomen. Zie je die status langdurig bij een productie-deploy, dan is de update-strategie niet goed geconfigureerd.
Via de knop Update forceer je een handmatige controle op een nieuw script, en met Skip waiting stuur je zelf het signaal naar de wachtende service worker. Dat is een handige diagnostische tool, maar het is geen oplossing voor spelers: die gaan niet naar DevTools. Dezelfde informatie is ook te vinden onder Cache Storage, waar je per cachenaam kunt zien welke bestanden zijn opgeslagen en welke versieaanduiding daarin zit. Een veelgemaakte fout is dat ontwikkelaars de cachenaam niet ophogen bij een release, waardoor de nieuwe service worker oude assets blijft serveren uit een cache die nooit is opgeschoond.
De controle die de meeste teams overslaan
De stap die in de praktijk het vaakst ontbreekt, is een controle na de deploy vanuit een echte spelerssessie in plaats van vanuit een schone ontwikkelomgeving. Open de applicatie op een toestel waarop de vorige versie al geinstalleerd was, kijk in Application > Service Workers of de nieuwe versie de status activated heeft, en vergelijk vervolgens de getoonde bonusvoorwaarden met wat er in het bonuspakket op de server staat. Wijkt de lobby af, dan weet je dat de service worker nog oude assets uit Cache Storage levert. Herhaal die controle op zowel Android als iOS, want het gedrag van de service worker verschilt per browser en per versie van het besturingssysteem.
Bij iOS verloopt de installatie via Safari en het toevoegen aan startscherm, en daar is het updategedrag van de service worker minder voorspelbaar dan in Google Chrome. Een speler die de applicatie via het beginscherm opent, kan na een update soms nog een oude versie zien totdat de applicatie volledig uit de achtergrond is gesloten. Dat maakt de DevTools-controle op een desktop of Android-toestel extra waardevol: je krijgt daar een betrouwbaarder beeld van wat de server aanbiedt, zoals ook te zien is via https://nl-winzoria.com/app/, waarna je kunt vaststellen of een afwijkende weergave op iPhone aan de client ligt of aan de deploy zelf.
Waarom een verkeerde update-strategie spelers en bonusvoorwaarden raakt
De inzetvereiste van de welkomstbonus, die 100% tot 1.500 euro bedraagt, is nergens publiekelijk beschikbaar. Dat betekent dat spelers die informatie uit de applicatie zelf moeten halen, en dat maakt een verouderde lobby extra gevoelig. Ziet een speler na een update nog de oude tekst met andere voorwaarden, dan ontstaat er een verschil tussen wat hij denkt te hebben geaccepteerd en wat het systeem registreert. Zulke discrepanties leiden tot supporttickets, en in het slechtste geval tot geschillen over de vraag welke voorwaarden golden op het moment van storten.
Hetzelfde geldt voor de live tafels. Een update kan de indeling van de lobby wijzigen of een tafel tijdelijk verplaatsen, terwijl de service worker nog de oude routekaart serveert. Een speler tikt dan op een tafel die in de nieuwe versie niet meer bestaat, of belandt in een sessie met verouderde limieten. Bij sportweddenschappen is het risico nog scherper: odds die uit een oude cache komen, kunnen seconden tot minuten achterlopen op de server, en dat is precies het soort fout dat een speler pas opmerkt nadat de weddenschap is geplaatst.
Er zit ook een beveiligingskant aan. Een service worker die te lang blijft wachten, houdt oude assets in leven, inclusief scripts die in een latere release zijn vervangen. Voor een casino Nederland-context, waar identiteitsverificatie en verantwoord spelen centraal staan, is dat geen detail. Een verouderde client kan schermen tonen die niet meer overeenkomen met de actuele limieten of met de status van een account. De oplossing is niet om skipWaiting overal aan te zetten, maar om per route te bepalen welke onderdelen direct mogen verversen en welke pas bij een nieuwe sessie mogen wisselen.
Voor uitgevers en affiliatepartners is er nog een laag bij. nl-winzoria.com is een informatieve gids met partnerlinks en is geen aanbieder van spellen, dus de verantwoordelijkheid voor de actieve versie ligt bij het platform zelf. Toch merkt een gids als eerste de gevolgen wanneer spelers na een klik een oude lobby tegenkomen en de informatie op de gidspagina niet meer klopt. Een periodieke controle van de service worker-status, bijvoorbeeld na elke aangekondigde release, voorkomt dat verouderde schermafbeeldingen of bonusbedragen op de gids blijven staan.
Praktisch betekent dit dat je bij elke deploy drie dingen vastlegt: de versienaam van de service worker, de cachenaam die daarbij hoort en het tijdstip waarop de nieuwe versie actief werd. Die gegevens zijn later te herleiden naar wat een speler op een bepaald moment had moeten zien. Zonder die administratie is een klacht over een oude lobby niet te weerleggen, en dat is een zwakke positie voor een platform dat met een Progressive Web App werkt en zijn gebruikers via Google Chrome en Safari laat installeren.
De Winzoria app is opgericht in 2025 en werkt met een Progressive Web App die gebruikers zelf via Google Chrome of Safari installeren en aan het startscherm toevoegen. Dat model heeft voordelen, maar legt de verantwoordelijkheid voor updates volledig bij het platform. Er is geen App Store of Google Play Store die een nieuwe versie uitrolt en gebruikers dwingt bij te werken. Elke speler houdt zijn eigen client in leven, en de service worker bepaalt wanneer die client verspringt. Wie dat proces niet monitort, verliest de controle over wat spelers zien.
Een goede werkwijze is om de service worker-versie zichtbaar te maken in de applicatie zelf, bijvoorbeeld in een verborgen instellingenscherm of in de footer van de mobiele website. Spelers hoeven dat niet te begrijpen, maar supportmedewerkers kunnen dan in één oogopslag zien of iemand een oude versie draait. Combineer dat met een melding in de applicatie wanneer een nieuwe versie klaarstaat, zodat de speler zelf kan herladen op een moment dat hem past. Dat is vriendelijker dan een gedwongen herlaadactie midden in een live tafel, en het lost het probleem op zonder de speelervaring te verstoren.
Controleer bij twijfel altijd eerst DevTools > Application > Service Workers en kijk of de nieuwe versie de status activated heeft voordat je een klacht als spelersfout afdoet. Vergelijk daarna de getoonde lobby met het bonuspakket op de server, en herhaal de test op Android via Google Chrome en op iPhone via Safari. Leg de versienaam en cachenaam vast bij elke release, dan is een oude spellobby met verouderde bonusvoorwaarden voortaan binnen enkele minuten te herleiden in plaats van na een reeks supporttickets.
