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.

1.5Maylık hizmet verilen oyuncu
500M+aylık teslim edilen mesaj
<100msp95 dağıtım hedefi

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.

şu an 1 kişi buradaFareni hareket ettir. El sallamak için tıkla.

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ı.

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

Bunu şurada iş başında gör: oyunlarımız— sonra foony.io'da aynı altyapıyı bir pano ve bir SDK ile edin.

Foony maskotu Bulby

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.

8 Ball Pool online multiplayer billiards icon