WebSockets as a Service
Den hanterade realtidsplattformen bakom foony.coms chatt och livedata, öppen för alla utvecklare på foony.io.
En WebSocket-tjänst håller en beständig anslutning öppen mellan dina servrar och varje ansluten klient, så att uppdateringar anländer i samma stund de sker i stället för vid nästa siduppdatering. Foony Realtime sköter de tråkiga delarna åt dig: anslutningar, återanslutningar, fan-out, närvaro och meddelandehistorik, allt bakom ett litet SDK.
Testa live
Allt nedan körs mot produktionstjänsten på realtime.foony.io just nu. Öppna den här sidan i en andra flik och se hur de speglar varandra.
Närvaro och live-muspekare
Alla som läser den här sidan dyker upp här, direkt från kanalens närvaro. Muspekarnas positioner färdas som flyktiga meddelanden, det snabba lagret som hoppar över lagring helt.
Livechatt
Det här är den riktiga chatten för den här sidan, samma @foony/chat-rum som varje Foony-sida och spelrum körs på. Meddelanden anländer över en kanal med historik, och det du skickar går genom Foonys server så att varje meddelande modereras.
Ingen har sagt något nyligen. Bli den som bryter isen.
Databassynk
Det här är foony.coms produktionspipeline: skriv vilket Foony-användarnamn som helst så streamas deras publika Postgres-rad in via sajtens WebSocket och fortsätter uppdateras live medan de spelar. Ingen polling, ingen API-endpoint.
Slår upp …
Varför team köper WebSockets i stället för att bygga dem
- Återanslutningar som inte tappar meddelanden. Webbläsare tappar anslutningar hela tiden. Klienter fortsätter där de slutade med historikuppspelning, så en ostadig anslutning betyder inte missade meddelanden.
- Fan-out i stor skala. Att leverera ett meddelande till hundratusen prenumeranter på under en sekund är ett svårt problem inom distribuerade system. Här är det hela jobbet.
- Närvaro utan bokföring. Se vem som är online just nu och reagera på händelser för att gå in, uppdatera och lämna, utan att skriva din egen heartbeat- och timeout-logik.
- Ingen kapacitetsplanering. WebSocket-servrar är stateful, så att skala dem själv innebär draining, sharding och sticky routing. En hanterad tjänst gör det till någon annans personsökare.
Det här får du med Foony Realtime
Kanaler och pub/sub
Skicka namngivna händelser via WebSocket eller REST till app-avgränsade kanaler (t.ex. chat:lobby) med förutsägbar leveranssemantik.
Närvaro
Håll koll på vem som är online, uppdatera medlemskap automatiskt och reagera på händelser för att gå in, uppdatera och lämna.
Meddelandehistorik
Spela upp senaste meddelandena från beständig lagring så att klienter återhämtar sig snyggt efter återanslutningar.
Token-autentisering
Skapa kortlivade klient-tokens från din backend med behörigheter på kanalnivå för publicering, prenumeration, närvaro och historik.
Pusher-kompatibel
Talar Pusher-protokollet, så pusher-js- och Laravel Echo-appar ansluter med en konfigurationsändring i stället för en omskrivning.
Databassynk
Streama Postgres-ändringar direkt till prenumererande klienter som live-frågor, ingen polling och ingen limkod.
Hela integrationen är bara ett par rader:
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' });Testat i strid på riktiga spel
Foony använder Foony Realtime flitigt för vår chatt och våra realtidsuppdateringar av databasen. Ungefär 1,5 miljoner spelare i månaden förlitar sig på foony.io för runt 500 miljoner meddelanden, och ett multiplayer-spel känns bara rätt när de kommer fram snabbt, i ordning och exakt en gång. Foony hade inte varit möjligt utan tillförlitligheten och kostnadseffektiviteten hos foony.io.
Se det i praktiken i något av våra spel, och skaffa sedan samma infrastruktur med en dashboard och en SDK på foony.io.

Testa det på din egen trafik
Gratisnivån inkluderar 9 miljoner meddelanden i månaden. Inget kreditkort krävs.
Vanliga frågor
Vad är WebSockets som tjänst?
En hanterad plattform som äger de beständiga anslutningarna mellan din app och dess användare. I stället för att köra egna WebSocket-servrar ansluter dina klienter till tjänsten, din backend publicerar meddelanden till kanaler via en SDK eller REST, och tjänsten sköter leverans, återanslutningar, närvaro och historik.
Hur skiljer sig Foony Realtime från Pusher eller Ably?
Den täcker samma kärnfunktioner med kanaler, närvaro, historik och token-autentisering, och den talar Pusher-protokollet, så den fungerar som ett direkt utbytbart alternativ till Pusher. Skillnaden är ursprung och pris. Den byggdes för foony.com, vår egen multiplayer-spelsajt, och gratisnivån inkluderar 9 miljoner meddelanden i månaden.
Måste jag skriva om min app för att byta?
Oftast inte. Appar med pusher-js och Laravel Echo kan peka mot Foony Realtime med en konfigurationsändring. Nya projekt använder @foony/realtime SDK för JavaScript och TypeScript, Go SDK, eller REST API från vilket språk som helst.
Vad kostar det?
Gratisnivån inkluderar 9 miljoner meddelanden i månaden. Betalplaner lägger till månadskapacitet, och användning utöver din plan faktureras per miljon meddelanden. Aktuella siffror finns på foony.io/pricing.