WebSockets як сервіс
Керована платформа реального часу, що стоїть за чатом і живими даними foony.com, відкрита для кожного розробника на foony.io.
WebSocket-сервіс тримає постійне з'єднання відкритим між твоїми серверами й кожним підключеним клієнтом, тож оновлення приходять у мить, коли вони стаються, а не після наступного оновлення сторінки. Foony Realtime бере на себе всю невдячну роботу: з'єднання, перепідключення, розсилку, присутність та історію повідомлень — усе за одним невеликим SDK.
Спробуй наживо
Усе нижче працює з робочим сервісом на realtime.foony.io прямо зараз. Відкрий цю сторінку в другій вкладці й дивись, як вони віддзеркалюють одна одну.
Присутність і живі курсори
Усі, хто читає цю сторінку, з'являються тут — прямо з присутності каналу. Позиції курсорів передаються як ефемерні повідомлення — низьколатентний рівень, який повністю оминає збереження.
Живий чат
Це справжній чат для цієї сторінки — та сама кімната @foony/chat, на якій працює кожна сторінка Foony та кожна ігрова кімната. Повідомлення приходять одним каналом з історією, а надсилання проходять через сервер Foony, тож кожне повідомлення модерується.
Нещодавно ніхто нічого не казав. Будь тим, хто розтопить кригу.
Синхронізація бази даних
Це продакшн-пайплайн foony.com: введи будь-яке ім'я користувача Foony, і його публічний рядок Postgres потече через WebSocket сайту, а потім оновлюватиметься наживо, поки він грає. Жодного опитування, жодних API-ендпоінтів.
Шукаємо…
Чому команди купують WebSockets замість того, щоб їх будувати
- Перепідключення, які не втрачають повідомлення. Браузери постійно розривають з'єднання. Клієнти продовжують з того місця, де зупинилися, завдяки відтворенню історії, тож нестабільне з'єднання не означає втрачених повідомлень.
- Розсилка в масштабі. Доставити одне повідомлення сотні тисяч підписників менш ніж за секунду — це складна проблема розподілених систем. Тут це вся наша робота.
- Присутність без бухгалтерії. Дивись, хто зараз онлайн, і реагуй на події входу, оновлення та виходу, не пишучи власну логіку heartbeat і тайм-аутів.
- Жодного планування потужностей. WebSocket-сервери зберігають стан, тож масштабувати їх самому означає draining, шардинг і sticky-маршрутизацію. Керований сервіс перекладає це на чужий пейджер.
Що ти отримуєш з Foony Realtime
Канали та pub/sub
Розсилай іменовані події через WebSocket або REST на канали в межах застосунку (наприклад, chat:lobby) з передбачуваною семантикою доставки.
Присутність
Відстежуй, хто онлайн, автоматично оновлюй членство і реагуй на події входу, оновлення та виходу.
Історія повідомлень
Відтворюй нещодавні повідомлення з надійного сховища, щоб клієнти чисто відновлювалися після перепідключень.
Авторизація за токеном
Генеруй короткочасні клієнтські токени зі свого бекенду з дозволами на публікацію, підписку, присутність та історію на рівні каналів.
Сумісність із Pusher
Розмовляє протоколом Pusher, тож застосунки на pusher-js і Laravel Echo підключаються зміною конфігурації, а не переписуванням.
Синхронізація бази даних
Транслюй зміни Postgres прямо до підписаних клієнтів як живі запити — жодного опитування і жодного склеювального коду.
Уся інтеграція — це кілька рядків:
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' });Перевірено в справжніх іграх
Foony активно використовує Foony Realtime для нашого чату та оновлень бази даних у реальному часі. Близько 1,5 мільйона гравців на місяць покладаються на foony.io заради приблизно 500 мільйонів повідомлень, а багатокористувацька гра відчувається правильно лише тоді, коли вони приходять швидко, по порядку і рівно один раз. Foony був би неможливим без надійності та економічності foony.io.
Побач це в дії в будь-якій із наших ігор, а потім отримай ту саму інфраструктуру з панеллю керування та SDK на foony.io.

Спробуй на власному трафіку
Безкоштовний тариф включає 9 мільйонів повідомлень на місяць. Кредитна картка не потрібна.
Часті запитання
Що таке WebSockets як сервіс?
Керована платформа, що бере на себе постійні з'єднання між твоїм застосунком і його користувачами. Замість запуску власних WebSocket-серверів твої клієнти підключаються до сервісу, твій бекенд публікує повідомлення в канали через SDK або REST, а сервіс займається доставкою, повторними підключеннями, присутністю та історією.
Чим Foony Realtime відрізняється від Pusher чи Ably?
Він охоплює той самий базовий набір: канали, присутність, історію й автентифікацію за токенами, і він розмовляє протоколом Pusher, тож працює як пряма заміна Pusher. Різниця — у походженні та ціні. Його створено для foony.com, нашого власного сайту багатокористувацьких ігор, а безкоштовний тариф включає 9 мільйонів повідомлень на місяць.
Чи мушу я переписувати свій застосунок, щоб перейти?
Зазвичай ні. Застосунки на pusher-js та Laravel Echo можна спрямувати на Foony Realtime, змінивши конфігурацію. Нові проєкти використовують SDK @foony/realtime для JavaScript і TypeScript, Go SDK або REST API будь-якою мовою.
Скільки це коштує?
Безкоштовний тариф включає 9 мільйонів повідомлень на місяць. Платні тарифи додають місячну ємність, а використання понад твій тариф оплачується за мільйон повідомлень. Актуальні цифри дивись на foony.io/pricing.