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-серверы хранят состояние, поэтому масштабировать их самому — значит заниматься дренажом, шардингом и 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 простым изменением конфигурации. Новые проекты используют @foony/realtime SDK для JavaScript и TypeScript, Go SDK или REST API на любом языке.
Сколько это стоит?
Бесплатный тариф включает 9 миллионов сообщений в месяц. Платные планы добавляют месячную ёмкость, а использование сверх плана оплачивается за каждый миллион сообщений. Актуальные цифры смотри на foony.io/pricing.