Pusher: gehoste dienst voor bidirectionele real-time communicatie, die infrastructuur biedt voor kanalen, gebeurtenissen en webhook-meldingen. Het bevrijdt de ontwikkelaar van de noodzaak om een eigen WebSocket-server op te zetten en zorgt voor levering van berichten aan miljoenen apparaten. Volgens officiële Pusher-documentatie (2025), verwerkt de dienst maandelijks meer dan 40 miljard berichten wereldwijd.
Belangrijkste punten
Pusher — clouddienst voor bidirectionele real-time communicatie, opgericht in 2011. Het biedt kant-en-klare infrastructuur voor het verzenden en ontvangen van berichten in real-time zonder een eigen WebSocket-server te hoeven beheren. Pusher wordt gebruikt voor het bouwen van chats, live meldingen, gezamenlijke bewerking en game leaderboards.
In tegenstelling tot bibliotheken zoals Socket.IO, die het implementeren en onderhouden van een eigen server vereisen, werkt Pusher volgens het SaaS (Software as a Service)-model. De ontwikkelaar registreert zich, ontvangt sleutels (app_id, key, secret) en gebruikt de REST API van Pusher om gebeurtenissen te publiceren. De serverinfrastructuur wordt volledig beheerd door het Pusher-platform.
Volgens de officiële Pusher-blog (2025), bedient het platform meer dan 250.000 actieve projecten wereldwijd. Bekende klanten zijn onder meer GitHub (real-time meldingen), Trello (bordsynchronisatie) en Intercom (ondersteuningschat). Pusher ondersteunt datacenters in de VS, Europa en Azië om vertragingen te minimaliseren.
Pusher werd gelanceerd in 2011 als een van de eerste gehoste diensten voor WebSocket. In 2014 introduceerde het bedrijf Pusher Channels — de huidige architectuur met ondersteuning voor private en presence kanalen. In 2017 werd ondersteuning voor webhook voor server-side gebeurtenissen toegevoegd. In 2022 lanceerde Pusher Pusher Beams — een pushmeldingendienst voor mobiele platformen.
De architectuur van Pusher verschilt van self-hosted oplossingen doordat alle verwerking van abonnementen, verbindingsbeheer en routing van gebeurtenissen aan de kant van Pusher Cloud plaatsvindt. De ontwikkelaar beheert alleen de authenticatie van private kanalen via zijn eigen backend.
Pusher-architectuur is gebaseerd op het Publisher-Subscriber-model. Servertoepassingen publiceren gebeurtenissen via de REST API van Pusher, en clienttoepassingen ontvangen ze via een permanente WebSocket-verbinding. Pusher fungeert als tussenpersoon tussen uitgevers en abonnees.
Wanneer de server een gebeurtenis verzendt via een POST-verzoek naar de Pusher API, bepaalt het platform het doelkanaal en verspreidt het bericht naar alle clients die op dat kanaal zijn geabonneerd. Clients ontvangen de gebeurtenis via de reeds geopende WebSocket-verbinding, wat een latentie van 50–100 ms oplevert, afhankelijk van de geografische locatie.
Elke client maakt verbinding via de Pusher Client SDK, die automatisch het transport selecteert (WebSocket — prioriteit, HTTP long-polling — fallback). De SDK beheert herverbinding, gegevensserialisatie en foutafhandeling zonder tussenkomst van de ontwikkelaar. Volgens de technische documentatie van Pusher (2025), is de herverbindingstijd bij netwerkonderbreking minder dan 1 seconde.
Het systeem bestaat uit drie componenten: Pusher Server API (REST-eindpunten voor het publiceren van gebeurtenissen), Pusher Client SDK (bibliotheken voor het abonneren op gebeurtenissen) en Pusher WebHook (servermeldingen over verbindings-/verbrekingsgebeurtenissen). Alle componenten werken asynchroon en onafhankelijk.
Pusher Channels ondersteunt drie soorten kanalen, elk bedoeld voor verschillende gebruiksscenario's. De keuze van het kanaaltype bepaalt het toegangsniveau, het authenticatiemechanisme en de beschikbare mogelijkheden.
| Kanaaltype | Prefix | Authenticatie | Gebruik |
|---|---|---|---|
| Public | channel- | Niet vereist | Openbare gegevens: wisselkoersen, weer, nieuwsfeed |
| Private | private- | Verzoek ondertekenen op server | Persoonlijke meldingen, chats, gebruikersgegevens |
| Presence | presence- | Handtekening + gebruikersinformatie | Online status, gamekamers, gezamenlijke bewerking |
Publieke kanalen zijn toegankelijk voor alle clients zonder authenticatie en zijn geschikt voor uitzendgegevens. Private kanalen vereisen authenticatie via de server van de ontwikkelaar: de client stuurt een verzoek naar zijn backend met socket_id en channel_name, de server ondertekent het verzoek met de geheime Pusher-sleutel en retourneert een auth-token. Presence-kanalen verzenden bovendien gebruikersinformatie (user_id, user_info) en maken het mogelijk te volgen wie er online is.
Volgens Pusher-documentatie (2025), is het maximale aantal gelijktijdig verbonden clients per kanaal 10.000 voor publieke en private kanalen. Voor presence-kanalen is de limiet 10.000 gebruikers per kanaal met ondersteuning voor maximaal 100.000 gebruikers per applicatie.
Het Pusher-gebeurtenismodel is gebaseerd op benoemde gebeurtenissen die in een kanaal worden gepubliceerd. Elke gebeurtenis heeft een naam (maximaal 200 tekens), gegevens in JSON-formaat en een optionele socket_id om opnieuw verzenden naar de initiator van de gebeurtenis uit te sluiten.
Triggers — zijn HTTP POST-verzoeken naar de Pusher API die een gebeurtenis in een kanaal publiceren. Verzoekformaat: POST /apps/{app_id}/events met een body met channel, name en data. Pusher Server API ondersteunt triggers vanuit elke serveromgeving via officiële bibliotheken (PHP, Ruby, Python, Go, Java, Node.js).
Pusher ondersteunt batch-triggers — het publiceren van één gebeurtenis in meerdere kanalen met één verzoek. Dit is efficiënter dan sequentiële aanroepen en garandeert atomiciteit van levering. Volgens Pusher-prestatietests (2024), duurt een batch-trigger op 100 kanalen 30–50 ms, terwijl sequentiële aanroepen 2–5 seconden duren.
Pusher WebHook stelt je server in staat meldingen te ontvangen over infrastructuurgebeurtenissen: clientverbinding, verbreking, foutoptreden. Webhook-verzoeken worden ondertekend met HMAC-SHA256 voor verificatie. Dit is essentieel voor logboekregistratie, analyses en statussynchronisatie.
Pusher-integratie bestaat uit twee delen: server-side (publiceren van gebeurtenissen) en client-side (abonneren op gebeurtenissen). Laten we een voorbeeld bekijken op Node.js voor het servergedeelte en JavaScript voor het clientgedeelte. Om te beginnen moet je een applicatie maken in het Pusher-dashboard en inloggegevens verkrijgen.
Volgens Pusher-documentatie (2025), omvat het basisplan (Sandbox) tot 100 gelijktijdige verbindingen en 200.000 berichten per dag — voldoende voor ontwikkeling en testen. Productieplannen beginnen vanaf $49 per maand voor 1000 verbindingen.
const Pusher = require('pusher');
const pusher = new Pusher({
appId: 'YOUR_APP_ID',
key: 'YOUR_KEY',
secret: 'YOUR_SECRET',
cluster: 'eu',
useTLS: true
});
pusher.trigger('my-channel', 'my-event', {
message: 'Hello from server',
timestamp: Date.now()
}).then(() => {
console.log('Gebeurtenis gepubliceerd');
}).catch(console.error);
import Pusher from 'pusher-js';
const pusher = new Pusher('YOUR_KEY', {
cluster: 'eu',
forceTLS: true
});
const channel = pusher.subscribe('my-channel');
channel.bind('my-event', (data) => {
console.log('Ontvangen gebeurtenis:', data);
displayNotification(data.message);
});
Pusher biedt SDK voor iOS (Swift) en Android (Java/Kotlin) die de functionaliteit van de JavaScript-client volledig nabootsen. Mobiele SDK's ondersteunen dezelfde kanaaltypen, authenticatiemechanismen en gebeurtenismodellen. Voor React Native is het pakket pusher-js beschikbaar dat via de JavaScript-brug werkt.
Op mobiele apparaten beheert Pusher SDK automatisch de overgang tussen Wi-Fi en mobiel netwerk, met behulp van een herverbindingsmechanisme met exponentiële vertraging. Dit is vooral belangrijk voor iOS-applicaties, waar iOS WebSocket-verbindingen geforceerd kan sluiten tijdens achtergrondwerking.
Volgens de technische blog van Pusher (2024), bedraagt het gemiddelde dataverbruik van één Pusher-verbinding 1–2 KB per minuut bij afwezigheid van actieve gebeurtenissen. Dit wordt bereikt door een geoptimaliseerd heartbeat-protocol met een interval van 30 seconden. Een middelgrote applicatie kan tot 1000 gelijktijdige Pusher-verbindingen ondersteunen zonder significante invloed op het batterijverbruik.
Pusher Beams — aanvullende dienst voor het verzenden van pushmeldingen naar mobiele apparaten via APNs (iOS) en FCM (Android). Beams integreert met Pusher Channels: een gebeurtenis uit een kanaal kan automatisch een pushmelding triggeren als de client offline is. Dit lost het probleem van berichtlevering op wanneer de app is gesloten.
Pusher-beveiliging is op meerdere niveaus geïmplementeerd. Elk verzoek aan de Pusher API wordt ondertekend met HMAC-SHA256 met behulp van app_secret. Dit garandeert dat alleen een geautoriseerde server gebeurtenissen kan publiceren. Client-SDK's gebruiken app_key voor applicatie-identificatie, maar voor toegang tot private en presence kanalen is aanvullende authenticatie vereist.
Authenticatie van private kanalen verloopt in drie stappen: de client roept pusher.subscribe('private-channel') aan, de Pusher Client SDK stuurt een HTTP-verzoek naar je backend-eindpunt (/pusher/auth), de server controleert de gebruikersrechten en retourneert een auth-token ondertekend met de geheime sleutel. Pusher verifieert de handtekening en staat het abonnement toe.
Het wordt aanbevolen TLS-verbindingen te gebruiken voor alle verzoeken (instelling useTLS: true in SDK). Pusher ondersteunt ook toegangsbeperking op IP-adressen voor serververzoeken aan de REST API. Voor enterprise-tarieven is ondersteuning voor VPC (Virtual Private Cloud) en dedicated clusters met geïsoleerde infrastructuur beschikbaar.
Veelgestelde vragen
Pusher — is een gehoste dienst (SaaS) die geen serverbeheer vereist. Socket.IO — is een bibliotheek die je zelf moet implementeren. Pusher is eenvoudiger in te stellen, maar duurder bij schaalvergroting. Socket.IO vereist DevOps-werk, maar is goedkoper bij grote volumes.
Het gratis Sandbox-plan omvat 100 verbindingen en 200.000 berichten per dag. Productieplannen beginnen vanaf $49/maand (1000 verbindingen, onbeperkte berichten) tot enterprise met individuele voorwaarden.
Pusher gebruikt WebSocket met automatische fallback naar HTTP long-polling. Voor kritieke berichten is een wachtrij aan de Pusher-kant beschikbaar met een at-least-once leveringsgarantie.
Ja, Pusher is toegankelijk vanuit Rusland via het Europese cluster (eu). De latentie bedraagt 50–100 ms voor Europese datacenters. Voor projecten met vereisten voor gegevenslokalisatie wordt aangeraden alternatieven te overwegen.
Belangrijkste concurrenten zijn Ably (vergelijkbare functionaliteit, flexibelere tarieven), PubNub (globaal leveringsnetwerk), Socket.IO (self-hosted) en Firebase Realtime Database (Google-ecosysteem).
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook