Op steeds meer websites wordt er gebruik gemaakt van real-time notificaties. Dit zijn berichten die vanaf de server naar jou worden gestuurd wanneer je op de hoogte moet zijn van een belangrijk bericht. Dit kan op elk moment gebeuren (real-time) zonder dat de pagina opnieuw herladen moet worden. Heel handig dus!
Als je ooit Facebook of de web versie van Whatsapp hebt gebruikt, weet je waarschijnlijk wel wat er bedoelt wordt. Je Facebook vriend heeft een nieuw bericht op jouw timeline gezet, en jij krijgt er meteen een notificatie van. Je contact persoon op Whatsapp stuurt je een bericht, en je kan meteen zien wie jou een bericht stuurt, en de inhoud van het bericht. Ook kun je bepalen wat er gebeurt wanneer de gebruiker op een notificatie klikt. Bijvoorbeeld, je kunt de gebruiker naar een bepaalde pagina sturen.
De meest moderne browsers (Chrome, Firefox, Opera & Internet Explorer) ondersteunen deze technologie tegenwoordig. Wanneer de gebruiker op jouw website komt, krijg de gebruiker een melding of hij/zij meldingen wilt ontvangen. De gebruiker kan deze dan accepteren of blokkeren.
Een groot deel van alle websites die real-time notificaties hebben, gebruikt NodeJS (https://nodejs.org/en/). Dit is een gratis programma dat geïnstalleerd kan worden op de server, en gebruikt wordt om Javascript code uit te voeren. Er zijn talloze packages beschikbaar om gebruik van te maken. Denk bijvoorbeeld aan MYSQL, een package om via Javascript database gegevens op te halen, te bewerken, verwijderen etc. Deze packages zijn allemaal open-source en redelijk tot goed gedocumenteerd.
Om een redelijk beeld te krijgen over hoe de push notificaties precies werken, is het makkelijk om dit stap voor stap uit te leggen:
Als het gaat om overdragen van gevoelige informatie, is het uiteraard belangrijk dat het goed beveiligd is. Wat de gebruiker bijvoorbeeld kan doen, is de ID die de gebruiker mee stuurt in het pakketje naar de server veranderen. De gebruiker krijgt dan informatie binnen die bestemd zijn voor andere gebruikers.
Je zou hiervoor natuurlijk op de server nog eens de gebruiker kunnen valideren. In plaats van dat de gebruiker een ID & Username mee stuurt in een pakketje, stuurt de gebruiker zijn Username & Password. Op de server worden deze gegevens nog eens in de database gecontroleerd. Zie dit als een login.
Wat je hier bijvoorbeeld ook tegen kan doen, is een moeilijke encryptie schrijven die de UserID & Password samenvoegt, en deze vervolgens via het pakketje mee sturen naar de server. Dit kunnen andere gebruikers niet verkrijgen tenzij ze jouw encryptie algoritme weten.
Koen Baas
Qlic