WebSockets as a Service

Ang managed realtime platform sa likod ng chat at live data ng foony.com, bukas sa bawat developer sa foony.io.

Ang isang WebSocket service ay pinapanatiling bukas ang tuloy-tuloy na koneksyon sa pagitan ng iyong mga server at ng bawat naka-connect na client, kaya dumarating ang mga update sa mismong sandali na nangyayari ang mga ito sa halip na sa susunod na page refresh. Ginagawa ng Foony Realtime ang mga hindi kaaya-ayang bahagi para sa iyo: mga koneksyon, reconnect, fan-out, presence, at message history, lahat nasa likod ng isang maliit na SDK.

1.5Mbuwanang players na pinaglilingkuran
500M+mensaheng naihahatid kada buwan
<100msp95 fan-out target

Subukan nang live

Lahat ng nasa ibaba ay tumatakbo laban sa production service sa realtime.foony.io sa mismong sandaling ito. Buksan ang page na ito sa pangalawang tab at panoorin kung paano sinasalamin ng dalawa ang isa't isa.

Presence at live cursors

Ang lahat ng nagbabasa ng page na ito ay lumalabas dito, diretso mula sa channel presence. Ang mga posisyon ng cursor ay naglalakbay bilang ephemeral messages, ang low-latency tier na tuluyang lumalaktaw sa storage.

1 nandito ngayonIgalaw ang mouse mo. I-click para kumaway.

Live chat

Ito ang tunay na chat para sa page na ito, ang parehong @foony/chat room na ginagamit ng bawat Foony page at game room. Dumarating ang mga mensahe sa isang channel na may history, at dumadaan ang mga ssend sa server ng Foony kaya na-moderate ang bawat mensahe.

Walang nagsalita kamakailan. Ikaw na ang mag-simula.

Database Sync

Ito ang production pipeline ng foony.com: i-type ang kahit anong Foony username at ang kanilang public na Postgres row ay dumadaloy nang live sa WebSocket ng site, tapos patuloy na nag-a-update habang naglalaro sila. Walang polling, walang API endpoint.

Hinahanap…

Bakit bumibili ang mga team ng WebSockets sa halip na gumawa mismo

  • Mga reconnect na hindi nawawalan ng mensahe. Palaging nawawala ang koneksyon ng mga browser. Nagpapatuloy ang mga client kung saan sila huminto gamit ang history replay, kaya ang paputol-putol na koneksyon ay hindi nangangahulugang may namissing mensahe.
  • Fan-out sa laki. Ang paghahatid ng isang mensahe sa isang daang libong subscriber sa loob ng wala pang isang segundo ay mahirap na problema sa distributed systems. Dito, iyon na ang buong trabaho.
  • Presence nang walang bookkeeping. Tingnan kung sino ang online ngayon at tumugon sa mga enter, update, at leave event, nang hindi na kailangang sumulat ng sariling heartbeat at timeout logic.
  • Walang capacity planning. Stateful ang mga WebSocket server, kaya ang pag-scale mismo ay nangangahulugang draining, sharding, at sticky routing. Ginagawang problema ng iba iyon ng isang managed service.

Ano ang makukuha mo sa Foony Realtime

Channels at pub/sub

Mag-fan out ng mga named event sa WebSocket o REST papunta sa mga app-scoped channel (hal. chat:lobby) na may predictable na delivery semantics.

Presence

Subaybayan kung sino ang online, awtomatikong i-refresh ang membership, at tumugon sa mga enter, update, at leave event.

Kasaysayan ng mensahe

I-replay ang mga kamakailang mensahe mula sa durable storage para malinis na makabawi ang mga client pagkatapos ng reconnect.

Token auth

Gumawa ng short-lived na client token mula sa iyong backend na may channel-level na publish, subscribe, presence, at history permissions.

Pusher compatible

Gumagamit ng Pusher protocol, kaya ang mga pusher-js at Laravel Echo app ay kumokonekta sa pamamagitan ng pagbabago sa configuration sa halip na rewrite.

Database Sync

I-stream ang mga pagbabago sa Postgres diretso sa mga subscribed na client bilang live query, walang polling at walang glue code.

Ang buong integration ay ilang linya lang:

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' });

Sinubukan na sa totoong mga laro

Malawakang ginagamit ng Foony ang Foony Realtime para sa aming chat at realtime database updates. Mga 1.5 milyong player kada buwan ang umaasa sa foony.io para sa halos 500 milyong mensahe, at maayos lang ang pakiramdam ng isang multiplayer game kapag mabilis na dumarating ang mga iyon, nasa tamang pagkakasunod-sunod, at exactly-once. Hindi magiging posible ang Foony kung wala ang pagiging maaasahan at cost-effective ng 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

Tingnan mo ito sa aksyon sa alinman sa mga laro namin, tapos kunin mo ang parehong infrastructure na may dashboard at SDK sa foony.io.

Si Bulby, ang mascot ng Foony

Subukan mo ito sa sarili mong traffic

Kasama sa free tier ang 9 milyong mensahe kada buwan. Walang kailangang credit card.

Mga madalas itanong

Ano ang WebSockets as a service?

Isang managed platform na nag-aasikaso ng mga persistent connection sa pagitan ng iyong app at ng mga user nito. Sa halip na patakbuhin ang sarili mong mga WebSocket server, kumokonekta ang mga client mo sa serbisyo, nagpu-publish ang backend mo ng mga mensahe sa mga channel sa pamamagitan ng SDK o REST, at ang serbisyo ang bahala sa delivery, reconnects, presence, at history.

Paano naiiba ang Foony Realtime sa Pusher o Ably?

Sinasaklaw nito ang parehong core surface ng channels, presence, history, at token auth, at nagsasalita ito ng Pusher protocol, kaya gumagana ito bilang drop-in na alternatibo sa Pusher. Ang pinagkaiba ay ang pinagmulan at presyo. Ginawa ito para sa foony.com, ang sarili naming multiplayer game site, at kasama sa free tier ang 9 milyong mensahe kada buwan.

Kailangan ko bang isulat ulit ang app ko para lumipat?

Kadalasan, hindi. Ang mga pusher-js at Laravel Echo app ay puwedeng ituro sa Foony Realtime sa pamamagitan lang ng pagbabago sa configuration. Ang mga bagong project ay gumagamit ng @foony/realtime SDK para sa JavaScript at TypeScript, ang Go SDK, o ang REST API mula sa kahit anong language.

Magkano ang gastos?

Kasama sa free tier ang 9 milyong mensahe kada buwan. Ang mga paid plan ay nagdaragdag ng monthly capacity, at ang paggamit na lampas sa plan mo ay siningil kada milyong mensahe. Ang kasalukuyang mga numero ay nasa foony.io/pricing.

8 Ball Pool online multiplayer billiards icon