Hizmet Olarak WebSocket
foony.com'un sohbetinin ve canlı verisinin arkasındaki yönetilen gerçek zamanlı platform, foony.io'da her geliştiriciye açık.
Bir WebSocket hizmeti, sunucularınla bağlı her istemci arasında kalıcı bir bağlantıyı açık tutar; böylece güncellemeler bir sonraki sayfa yenilemesinde değil, oldukları anda ulaşır. Foony Realtime, gösterişsiz kısımları senin için halleder: bağlantılar, yeniden bağlanmalar, dağıtım, varlık ve mesaj geçmişi; hepsi tek bir küçük SDK'nin arkasında.
Canlı dene
Aşağıdaki her şey şu anda realtime.foony.io'daki canlı hizmete karşı çalışıyor. Bu sayfayı ikinci bir sekmede aç ve ikisinin birbirini nasıl yansıttığını izle.
Varlık ve canlı imleçler
Bu sayfayı okuyan herkes doğrudan kanal varlığından burada görünür. İmleç konumları geçici mesajlar olarak yolculuk eder; bu, depolamayı tamamen atlayan düşük gecikmeli katmandır.
Canlı sohbet
Bu, bu sayfanın gerçek sohbeti; her Foony sayfasının ve oyun odasının çalıştığı aynı @foony/chat odası. Mesajlar geçmişiyle birlikte tek bir kanaldan gelir ve gönderilenler Foony'nin sunucusundan geçer, böylece her mesaj denetlenir.
Son zamanlarda kimse bir şey söylemedi. Buzları sen kır.
Veritabanı Senkronu
Bu foony.com'un canlı üretim hattı: herhangi bir Foony kullanıcı adı yaz, o kişinin herkese açık Postgres satırı sitenin WebSocket'i üzerinden akmaya başlasın, sonra o kişi oynadıkça canlı olarak güncellenmeye devam etsin. Yoklama yok, API uç noktası yok.
Aranıyor…
Ekipler WebSocket'i neden kendileri inşa etmek yerine satın alır
- Mesaj kaybetmeyen yeniden bağlantılar. Tarayıcılar sürekli bağlantı düşürür. İstemciler geçmiş tekrarıyla kaldıkları yerden devam eder, yani kesintili bir bağlantı kaçırılmış mesaj demek değildir.
- Ölçekte dağıtım. Bir mesajı yüz bin aboneye bir saniyeden kısa sürede iletmek zorlu bir dağıtık sistemler problemidir. Burada ise işin tamamı bu.
- Defter tutmadan varlık. Şu anda kimin çevrimiçi olduğunu gör ve giriş, güncelleme ve çıkış olaylarına tepki ver; kendi kalp atışı ve zaman aşımı mantığını yazmadan.
- Kapasite planlaması yok. WebSocket sunucuları durum tutar, yani onları kendin ölçeklemek boşaltma, parçalama ve yapışkan yönlendirme demektir. Yönetilen bir hizmet bunu başkasının çağrı cihazına bırakır.
Foony Realtime ile neler elde edersin
Kanallar ve pub/sub
Adlandırılmış olayları WebSocket veya REST üzerinden uygulama kapsamlı kanallara (ör. chat:lobby) öngörülebilir teslimat semantiğiyle dağıt.
Varlık
Kimin çevrimiçi olduğunu takip et, üyeliği otomatik olarak yenile ve giriş, güncelleme ve çıkış olaylarına tepki ver.
Mesaj geçmişi
Kalıcı depolamadan son mesajları tekrar oynat, böylece istemciler yeniden bağlandıktan sonra temiz şekilde toparlanır.
Token kimlik doğrulama
Backend'inden kanal düzeyinde yayınlama, abone olma, varlık ve geçmiş izinleriyle kısa ömürlü istemci token'ları üret.
Pusher uyumlu
Pusher protokolünü konuşur, yani pusher-js ve Laravel Echo uygulamaları baştan yazmak yerine bir yapılandırma değişikliğiyle bağlanır.
Veritabanı Senkronu
Postgres değişikliklerini abone istemcilere canlı sorgular olarak doğrudan akıt; yoklama yok, yapıştırıcı kod yok.
Tüm entegrasyon birkaç satır:
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' });Gerçek oyunlarda test edildi
Foony, sohbetimiz ve gerçek zamanlı veritabanı güncellemeleri için Foony Realtime'ı yoğun bir şekilde kullanır. Ayda yaklaşık 1,5 milyon oyuncu, kabaca 500 milyon mesaj için foony.io'ya güveniyor ve bir çok oyunculu oyun, bu mesajlar hızlı, sırayla ve tam olarak bir kez geldiğinde doğru hissettirir. Foony, foony.io'nun güvenilirliği ve maliyet etkinliği olmadan mümkün olmazdı.
Bunu şurada iş başında gör: oyunlarımız— sonra foony.io'da aynı altyapıyı bir pano ve bir SDK ile edin.

Kendi trafiğinde dene
Ücretsiz katman ayda 9 milyon mesaj içerir. Kredi kartı gerekmez.
Sıkça sorulan sorular
Hizmet olarak WebSockets nedir?
Uygulamanla kullanıcıları arasındaki kalıcı bağlantılara sahip olan, yönetilen bir platform. Kendi WebSocket sunucularını çalıştırmak yerine, istemcilerin hizmete bağlanır, arka ucun bir SDK ya da REST aracılığıyla kanallara mesaj yayınlar ve hizmet teslimatı, yeniden bağlanmaları, varlığı ve geçmişi halleder.
Foony Realtime, Pusher ya da Ably'den ne farkla ayrılır?
Kanallar, varlık, geçmiş ve token kimlik doğrulaması gibi aynı temel yüzeyi kapsar ve Pusher protokolünü konuşur, yani doğrudan takılabilir bir Pusher alternatifi olarak çalışır. Fark, kökeni ve fiyatı. Kendi çok oyunculu oyun sitemiz foony.com için inşa edildi ve ücretsiz katman ayda 9 milyon mesaj içeriyor.
Geçiş yapmak için uygulamamı yeniden yazmam gerekir mi?
Genelde hayır. pusher-js ve Laravel Echo uygulamaları bir yapılandırma değişikliğiyle Foony Realtime'a yönlendirilebilir. Yeni projeler şunları kullanır: JavaScript ve TypeScript için @foony/realtime SDK, Go SDK ya da REST API herhangi bir dilden.
Maliyeti nedir?
Ücretsiz katman ayda 9 milyon mesaj içerir. Ücretli planlar aylık kapasite ekler ve planının üzerindeki kullanım milyon mesaj başına faturalandırılır. Güncel rakamlar şurada: foony.io/pricing.