WebSockets sebagai Servis
Platform realtime terurus di sebalik chat dan data langsung foony.com, terbuka untuk setiap pembangun di foony.io.
Servis WebSocket mengekalkan sambungan berterusan antara server kamu dan setiap klien yang bersambung, jadi kemas kini tiba pada saat ia berlaku dan bukannya pada muat semula halaman seterusnya. Foony Realtime menguruskan bahagian yang membosankan untuk kamu: sambungan, sambung semula, fan-out, presence, dan sejarah mesej, semuanya di sebalik satu SDK kecil.
Cuba secara langsung
Semua di bawah berjalan atas servis produksi di realtime.foony.io sekarang juga. Buka halaman ini dalam tab kedua dan lihat kedua-duanya mencerminkan satu sama lain.
Presence dan kursor langsung
Semua orang yang membaca halaman ini muncul di sini, terus dari channel presence. Kedudukan kursor bergerak sebagai mesej ephemeral, tier latency rendah yang melangkau storan sepenuhnya.
Chat langsung
Ini chat sebenar untuk halaman ini, bilik @foony/chat yang sama yang dijalankan oleh setiap halaman dan bilik permainan Foony. Mesej tiba melalui satu channel dengan sejarah, dan penghantaran melalui server Foony jadi setiap mesej dimoderasikan.
Tiada sesiapa berkata apa-apa kebelakangan ini. Jadilah pemecah suasana.
Penyegerakan Pangkalan Data
Ini ialah pipeline pengeluaran foony.com: taip apa-apa nama pengguna Foony dan baris Postgres awam mereka akan mengalir masuk melalui WebSocket laman ini, kemudian terus dikemas kini secara langsung sambil mereka bermain. Tiada polling, tiada API endpoint.
Sedang mencari…
Kenapa pasukan beli WebSockets daripada bina sendiri
- Sambung semula tanpa kehilangan mesej. Pelayar sentiasa terputus sambungan. Klien sambung semula dari tempat mereka berhenti dengan main semula sejarah, jadi sambungan tak stabil tak bermakna mesej terlepas.
- Fan-out pada skala besar. Menghantar satu mesej kepada seratus ribu pelanggan dalam masa kurang sesaat ialah masalah sistem teragih yang sukar. Di sini, itulah keseluruhan kerjanya.
- Kehadiran tanpa penyimpanan rekod. Lihat siapa yang online sekarang dan bertindak balas terhadap acara masuk, kemas kini, dan keluar, tanpa perlu tulis logik heartbeat dan timeout sendiri.
- Tiada perancangan kapasiti. Pelayan WebSocket bersifat stateful, jadi menskalakannya sendiri bermakna draining, sharding, dan sticky routing. Perkhidmatan terurus menjadikannya tanggungjawab orang lain.
Apa yang kamu dapat dengan Foony Realtime
Saluran dan pub/sub
Fan out acara bernama melalui WebSocket atau REST ke saluran skop apl (cth. chat:lobby) dengan semantik penghantaran yang boleh dijangka.
Kehadiran
Jejak siapa yang online, segarkan keahlian secara automatik, dan bertindak balas terhadap acara masuk, kemas kini, dan keluar.
Sejarah mesej
Main semula mesej terkini dari storan tahan lasak supaya klien pulih dengan lancar selepas sambung semula.
Pengesahan token
Cipta token klien jangka pendek dari backend kamu dengan kebenaran publish, subscribe, presence, dan history pada peringkat saluran.
Serasi Pusher
Bercakap protokol Pusher, jadi apl pusher-js dan Laravel Echo boleh sambung dengan perubahan konfigurasi dan bukannya tulis semula.
Penyegerakan Pangkalan Data
Alirkan perubahan Postgres terus kepada klien yang melanggan sebagai pertanyaan langsung, tanpa polling dan tanpa kod glue.
Keseluruhan integrasi cuma beberapa baris:
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' });Diuji dalam permainan sebenar
Foony banyak menggunakan Foony Realtime untuk chat dan kemas kini pangkalan data masa nyata kami. Kira-kira 1.5 juta pemain sebulan bergantung pada foony.io untuk lebih kurang 500 juta mesej, dan permainan pelbagai pemain hanya terasa betul apabila mesej itu tiba dengan pantas, mengikut urutan, dan tepat sekali sahaja. Foony takkan wujud tanpa kebolehpercayaan dan keberkesanan kos foony.io.
Lihat ia beraksi dalam mana-mana permainan kami, kemudian dapatkan infrastruktur yang sama dengan papan pemuka dan SDK di foony.io.

Cuba pada trafik kamu sendiri
Peringkat percuma termasuk 9 juta mesej sebulan. Tak perlu kad kredit.
Soalan lazim
Apa itu WebSockets sebagai perkhidmatan?
Sebuah platform terurus yang memiliki sambungan berterusan antara apl kamu dan penggunanya. Daripada menjalankan pelayan WebSocket sendiri, klien kamu bersambung ke perkhidmatan itu, backend kamu menerbitkan mesej ke saluran melalui SDK atau REST, dan perkhidmatan itu mengendalikan penghantaran, sambung semula, kehadiran, dan sejarah.
Macam mana Foony Realtime berbeza daripada Pusher atau Ably?
Ia meliputi permukaan teras yang sama iaitu saluran, kehadiran, sejarah, dan pengesahan token, dan ia bercakap protokol Pusher, jadi ia berfungsi sebagai alternatif Pusher secara terus. Bezanya ialah asal-usul dan harga. Ia dibina untuk foony.com, laman permainan pelbagai pemain kami sendiri, dan peringkat percuma termasuk 9 juta mesej sebulan.
Perlukah saya tulis semula apl saya untuk bertukar?
Biasanya tidak. Apl pusher-js dan Laravel Echo boleh diarahkan ke Foony Realtime dengan hanya menukar konfigurasi. Projek baru guna @foony/realtime SDK untuk JavaScript dan TypeScript, Go SDK, atau REST API daripada mana-mana bahasa.
Berapa kosnya?
Peringkat percuma termasuk 9 juta mesej sebulan. Pelan berbayar menambah kapasiti bulanan, dan penggunaan melebihi pelan kamu dikira per juta mesej. Angka semasa ada di foony.io/pricing.