WebSockets jako usługa
Zarządzana platforma realtime stojąca za czatem i danymi na żywo foony.com, dostępna dla każdego dewelopera na foony.io.
Usługa WebSocket utrzymuje stałe połączenie między twoimi serwerami a każdym podłączonym klientem, więc aktualizacje docierają w momencie, gdy się dzieją, a nie przy kolejnym odświeżeniu strony. Foony Realtime załatwia za ciebie te mniej efektowne rzeczy: połączenia, ponowne łączenia, rozsyłanie, obecność i historię wiadomości, wszystko za jednym małym SDK.
Wypróbuj na żywo
Wszystko poniżej działa właśnie teraz na produkcyjnej usłudze pod realtime.foony.io. Otwórz tę stronę w drugiej karcie i zobacz, jak obie się odzwierciedlają.
Obecność i kursory na żywo
Każdy, kto czyta tę stronę, pojawia się tutaj, prosto z obecności kanału. Pozycje kursorów podróżują jako ulotne wiadomości, warstwa o niskim opóźnieniu, która całkowicie pomija zapisywanie.
Czat na żywo
To prawdziwy czat tej strony, ten sam pokój @foony/chat, na którym działa każda strona i pokój gry Foony. Wiadomości docierają jednym kanałem z historią, a wysyłanie przechodzi przez serwer Foony, więc każda wiadomość jest moderowana.
Nikt nic ostatnio nie powiedział. Przełam lody.
Synchronizacja bazy danych
To jest produkcyjny pipeline foony.com: wpisz dowolną nazwę użytkownika Foony, a jego publiczny wiersz Postgres wpłynie przez WebSocket strony i będzie się aktualizować na żywo, gdy on gra. Bez odpytywania, bez punktu końcowego API.
Szukam…
Dlaczego zespoły kupują WebSockety, zamiast je budować
- Ponowne połączenia, które nie gubią wiadomości. Przeglądarki bez przerwy zrywają połączenia. Klienci wznawiają tam, gdzie skończyli, dzięki odtwarzaniu historii, więc niestabilne połączenie nie oznacza pominiętych wiadomości.
- Rozgłaszanie na dużą skalę. Dostarczenie jednej wiadomości do stu tysięcy subskrybentów w mniej niż sekundę to trudny problem systemów rozproszonych. Tutaj to całe zadanie.
- Obecność bez ręcznej ewidencji. Zobacz, kto jest teraz online, i reaguj na zdarzenia wejścia, aktualizacji i wyjścia, bez pisania własnej logiki heartbeat i limitów czasu.
- Bez planowania pojemności. Serwery WebSocket są stanowe, więc samodzielne skalowanie oznacza opróżnianie, sharding i sticky routing. Usługa zarządzana sprawia, że to problem kogoś innego.
Co dostajesz z Foony Realtime
Kanały i pub/sub
Rozgłaszaj nazwane zdarzenia przez WebSocket lub REST do kanałów przypisanych do aplikacji (np. chat:lobby) z przewidywalną semantyką dostarczania.
Obecność
Śledź, kto jest online, automatycznie odświeżaj listę członków i reaguj na zdarzenia wejścia, aktualizacji i wyjścia.
Historia wiadomości
Odtwarzaj ostatnie wiadomości z trwałego magazynu, aby klienci czysto odzyskiwali stan po ponownym połączeniu.
Uwierzytelnianie tokenem
Twórz krótkotrwałe tokeny klienta ze swojego backendu z uprawnieniami do publikowania, subskrybowania, obecności i historii na poziomie kanału.
Zgodność z Pusher
Mówi protokołem Pusher, więc aplikacje z pusher-js i Laravel Echo łączą się dzięki zmianie konfiguracji, a nie przepisywaniu.
Synchronizacja bazy danych
Przesyłaj zmiany Postgres prosto do subskrybowanych klientów jako zapytania na żywo, bez odpytywania i bez kodu klejącego.
Cała integracja to kilka linijek:
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' });Sprawdzone w boju na prawdziwych grach
Foony intensywnie korzysta z Foony Realtime do czatu i aktualizacji bazy danych w czasie rzeczywistym. Około 1,5 miliona graczy miesięcznie polega na foony.io przy mniej więcej 500 milionach wiadomości, a gra multiplayer działa dobrze tylko wtedy, gdy docierają szybko, w kolejności i dokładnie raz. Foony nie byłoby możliwe bez niezawodności i opłacalności foony.io.
Zobacz to w akcji w dowolnej z naszych gier, a potem zdobądź tę samą infrastrukturę z pulpitem i SDK na foony.io.

Wypróbuj to na własnym ruchu
Darmowy plan obejmuje 9 milionów wiadomości miesięcznie. Bez karty kredytowej.
Często zadawane pytania
Czym jest WebSockets jako usługa?
Zarządzana platforma, która przejmuje trwałe połączenia między twoją aplikacją a jej użytkownikami. Zamiast uruchamiać własne serwery WebSocket, twoi klienci łączą się z usługą, twój backend publikuje wiadomości na kanałach przez SDK lub REST, a usługa zajmuje się dostarczaniem, ponownymi połączeniami, obecnością i historią.
Czym Foony Realtime różni się od Pushera lub Ably?
Obejmuje tę samą podstawową funkcjonalność kanałów, obecności, historii i uwierzytelniania tokenami oraz mówi protokołem Pushera, więc działa jako gotowa alternatywa dla Pushera. Różnica tkwi w pochodzeniu i cenie. Zostało zbudowane dla foony.com, naszej własnej strony z grami multiplayer, a darmowy plan obejmuje 9 milionów wiadomości miesięcznie.
Czy muszę przepisać aplikację, żeby się przesiąść?
Zwykle nie. Aplikacje pusher-js i Laravel Echo można skierować na Foony Realtime za pomocą zmiany konfiguracji. Nowe projekty używają SDK @foony/realtime dla JavaScript i TypeScript, SDK Go lub API REST z dowolnego języka.
Ile to kosztuje?
Darmowy plan obejmuje 9 milionów wiadomości miesięcznie. Płatne plany dodają miesięczną pojemność, a użycie powyżej twojego planu jest rozliczane za każdy milion wiadomości. Aktualne liczby znajdziesz na foony.io/pricing.