WebSockets as a Service

Het beheerde realtime-platform achter de chat en live data van foony.com, beschikbaar voor elke ontwikkelaar op foony.io.

Een WebSocket-service houdt een permanente verbinding open tussen je servers en elke verbonden client, zodat updates aankomen op het moment dat ze gebeuren in plaats van bij de volgende paginaverversing. Foony Realtime doet de saaie klusjes voor je: verbindingen, herverbindingen, fan-out, presence en berichtgeschiedenis, allemaal achter één kleine SDK.

1.5Mspelers bediend per maand
500M+berichten geleverd per maand
<100msp95 fan-out-doel

Probeer het live

Alles hieronder draait nu tegen de productieservice op realtime.foony.io. Open deze pagina in een tweede tabblad en kijk hoe de twee elkaar spiegelen.

Presence en live cursors

Iedereen die deze pagina leest, verschijnt hier, rechtstreeks uit channel presence. Cursorposities reizen als vluchtige berichten, de laag met lage latentie die opslag volledig overslaat.

1 nu hierBeweeg je muis. Klik om te zwaaien.

Live chat

Dit is de echte chat voor deze pagina, dezelfde @foony/chat-kamer waar elke Foony-pagina en game-kamer op draait. Berichten komen binnen via één kanaal met geschiedenis, en verzendingen lopen via Foony's server zodat elk bericht gemodereerd wordt.

Niemand heeft recent iets gezegd. Wees de ijsbreker.

Database Sync

Dit is de productiepijplijn van foony.com: typ een willekeurige Foony-gebruikersnaam en hun openbare Postgres-rij stroomt binnen via de WebSocket van de site, en blijft daarna live updaten terwijl ze spelen. Geen polling, geen API-endpoint.

Aan het opzoeken…

Waarom teams WebSockets kopen in plaats van ze zelf te bouwen

  • Herverbindingen zonder verloren berichten. Browsers verbreken constant verbindingen. Clients gaan verder waar ze gebleven waren met history-replay, dus een wankele verbinding betekent geen gemiste berichten.
  • Fan-out op schaal. Eén bericht in minder dan een seconde bij honderdduizend abonnees afleveren is een lastig probleem in gedistribueerde systemen. Hier is het het hele werk.
  • Presence zonder administratie. Zie wie er nu online is en reageer op enter-, update- en leave-events, zonder je eigen heartbeat- en timeout-logica te schrijven.
  • Geen capaciteitsplanning. WebSocket-servers houden state bij, dus zelf schalen betekent draining, sharding en sticky routing. Een beheerde service maakt dat iemand anders zijn pager.

Wat je krijgt met Foony Realtime

Channels en pub/sub

Verspreid benoemde events via WebSocket of REST naar app-gebonden channels (bijv. chat:lobby) met voorspelbare afleveringssemantiek.

Presence

Houd bij wie er online is, ververs het lidmaatschap automatisch en reageer op enter-, update- en leave-events.

Berichtgeschiedenis

Speel recente berichten opnieuw af vanuit duurzame opslag zodat clients netjes herstellen na herverbindingen.

Token-authenticatie

Maak kortlevende client-tokens aan vanuit je backend met publicatie-, abonnements-, presence- en history-rechten op channel-niveau.

Pusher-compatibel

Spreekt het Pusher-protocol, dus pusher-js- en Laravel Echo-apps verbinden met een configuratiewijziging in plaats van een herschrijving.

Database Sync

Stream Postgres-wijzigingen rechtstreeks naar geabonneerde clients als live queries, geen polling en geen lijmcode.

De hele integratie is een paar regels:

const realtime = new Realtime({ authCallback });
const channel = realtime.channels.get('chat:lobby');

channel.on((message) => {
  showMessage(message.data);
});

await channel.publish('message', { text: 'hello' });
await channel.presence.enter({ name: 'Acorn' });

Getest in de praktijk met echte games

Foony maakt volop gebruik van Foony Realtime voor onze chat en realtime database-updates. Ongeveer 1,5 miljoen spelers per maand vertrouwen op foony.io voor zo'n 500 miljoen berichten, en een multiplayergame voelt pas goed aan als die snel, in volgorde en precies één keer aankomen. Foony zou niet mogelijk zijn zonder de betrouwbaarheid en kostenefficiëntie van foony.io.

8 Ball Pool online multiplayer billiards thumbnailDinoMight Bomberman style online multiplayer thumbnailChess online multiplayer board thumbnail9 Ball Pool online multiplayer billiards thumbnailSnooker online multiplayer thumbnailCarrom board game online multiplayer thumbnail

Zie het in actie in een van onze games, en krijg dan dezelfde infrastructuur met een dashboard en een SDK op foony.io.

Bulby, de mascotte van Foony

Probeer het op je eigen verkeer

Het gratis abonnement bevat 9 miljoen berichten per maand. Geen creditcard nodig.

Veelgestelde vragen

Wat is WebSockets as a service?

Een beheerd platform dat de blijvende verbindingen tussen jouw app en de gebruikers beheert. In plaats van je eigen WebSocket-servers te draaien, verbinden je clients met de service, publiceert je backend berichten naar kanalen via een SDK of REST, en zorgt de service voor de bezorging, reconnects, presence en geschiedenis.

Hoe verschilt Foony Realtime van Pusher of Ably?

Het dekt hetzelfde kernpakket van kanalen, presence, geschiedenis en token-auth, en het spreekt het Pusher-protocol, dus het werkt als een drop-in-alternatief voor Pusher. Het verschil zit in de herkomst en de prijs. Het is gebouwd voor foony.com, onze eigen multiplayer-gamesite, en het gratis abonnement bevat 9 miljoen berichten per maand.

Moet ik mijn app herschrijven om over te stappen?

Meestal niet. Apps met pusher-js en Laravel Echo kun je met een configuratiewijziging naar Foony Realtime laten wijzen. Nieuwe projecten gebruiken de @foony/realtime SDK voor JavaScript en TypeScript, de Go SDK, of de REST API vanuit elke taal.

Wat kost het?

Het gratis abonnement bevat 9 miljoen berichten per maand. Betaalde abonnementen voegen maandelijkse capaciteit toe, en gebruik boven je abonnement wordt per miljoen berichten gefactureerd. De actuele cijfers vind je op foony.io/pricing.

8 Ball Pool online multiplayer billiards icon