Pusher — що це, платформа реального часу та інтеграція в застосунки

Автор: IT Sectr Опубліковано: 2026-06-01 Час читання: 8 хв

Pusher: хостинг-сервіс для двосторонньої комунікації в реальному часі, що надає інфраструктуру для каналів, подій та webhook-сповіщень. Він позбавляє розробника необхідності розгортати власний WebSocket-сервер і забезпечує доставку повідомлень мільйонам пристроїв. Згідно з офіційною документацією Pusher (2025), сервіс обробляє понад 40 мільярдів повідомлень щомісяця по всьому світу.

Головне

  • Pusher — хмарний сервіс для повідомлень у реальному часі, що не потребує власного керування сервером.
  • Канали та події — публікація повідомлень здійснюється через іменовані канали з підтримкою типів: public, private, presence.
  • WebSocket транспортування — клієнти підключаються через WebSocket із резервним варіантом на HTTP polling.
  • Webhook інтеграція — серверні події доставляються на ваш backend через HTTP-хуки.
  • SDK для всіх платформ — готові клієнти для JavaScript, iOS, Android, React Native та серверних мов.

Що таке Pusher?

Pusher — хмарний сервіс для двосторонньої комунікації в реальному часі, заснований у 2011 році. Він надає готову інфраструктуру для надсилання та отримання повідомлень у реальному часі без необхідності керувати власним сервером WebSocket. Pusher використовується для побудови чатів, лайв-сповіщень, спільного редагування та ігрових лідербордів.

На відміну від бібліотек на кшталт Socket.IO, які потребують розгортання та обслуговування власного сервера, Pusher працює за моделлю SaaS (програмне забезпечення як послуга). Розробник реєструється, отримує ключі (app_id, key, secret) і використовує REST API Pusher для публікації подій. Серверна інфраструктура повністю керується платформою Pusher.

За даними офіційного блогу Pusher (2025), платформа обслуговує понад 250 000 активних проєктів по всьому світу. Серед відомих клієнтів — GitHub (сповіщення в реальному часі), Trello (синхронізація дошок) та Intercom (чат підтримки). Pusher підтримує дата-центри в США, Європі та Азії для мінімізації затримок.

Історія розвитку Pusher

Pusher був запущений у 2011 році як один із перших хостинг-сервісів для WebSocket. У 2014 році компанія представила Pusher Channels — поточну архітектуру з підтримкою private та presence каналів. У 2017 році додано підтримку webhook для серверних подій. У 2022 році Pusher запустив Pusher Beams — сервіс push-сповіщень для мобільних платформ.

Архітектура Pusher відрізняється від self-hosted рішень тим, що вся обробка підписок, керування з'єднаннями та маршрутизація подій відбувається на стороні Pusher Cloud. Розробник керує лише автентифікацією private-каналів через свій backend.

Як працює Pusher

Архітектура Pusher базується на моделі Publisher-Subscriber. Серверні застосунки публікують події через REST API Pusher, а клієнтські застосунки отримують їх через постійне WebSocket-з'єднання. Pusher виступає як посередник між видавцями та підписниками.

Коли сервер надсилає подію через POST-запит до API Pusher, платформа визначає цільовий канал і розсилає повідомлення всім клієнтам, підписаним на цей канал. Клієнти отримують подію через уже відкрите WebSocket-з'єднання, що забезпечує затримку 50–100 мс залежно від географічного розташування.

Кожен клієнт встановлює з'єднання через Pusher Client SDK, який автоматично вибирає транспорт (WebSocket — пріоритет, HTTP long-polling — резервний варіант). SDK керує перепідключенням, серіалізацією даних та обробкою помилок без участі розробника. Згідно з технічною документацією Pusher (2025), час перепідключення при обриві мережі становить менше 1 секунди.

Компоненти Pusher

Система складається з трьох компонентів: Pusher Server API (REST-ендпоінти для публікації подій), Pusher Client SDK (бібліотеки для підписки на події) та Pusher WebHook (сповіщення сервера про події підключення/відключення). Усі компоненти працюють асинхронно та незалежно.

Типи каналів Pusher

Pusher Channels підтримує три типи каналів, кожен із яких призначений для різних сценаріїв використання. Вибір типу каналу визначає рівень доступу, механізм автентифікації та доступні можливості.

Тип каналуПрефіксАвтентифікаціяВикористання
Publicchannel-Не потрібнаПублічні дані: курси валют, погода, стрічка новин
Privateprivate-Підпис запиту на серверіПерсональні сповіщення, чати, дані користувача
Presencepresence-Підпис + інформація про користувачаОнлайн-статус, ігрові кімнати, спільне редагування

Public канали доступні всім клієнтам без автентифікації та підходять для широкомовних даних. Private канали потребують автентифікації через сервер розробника: клієнт надсилає запит на свій backend із socket_id та channel_name, сервер підписує запит секретним ключем Pusher і повертає auth-токен. Presence канали додатково передають інформацію про користувача (user_id, user_info) і дозволяють відстежувати, хто зараз онлайн.

За даними документації Pusher (2025), максимальна кількість одночасно підключених клієнтів на один канал — 10 000 для public та private каналів. Для presence каналів обмеження становить 10 000 користувачів на канал із підтримкою до 100 000 користувачів на застосунок.

Події та тригери Pusher

Подійна модель Pusher заснована на іменованих подіях, які публікуються в канал. Кожна подія має ім'я (максимум 200 символів), дані у форматі JSON та необов'язковий socket_id для виключення повторного надсилання ініціатору події.

Тригери — це HTTP POST-запити до API Pusher, які публікують подію в канал. Формат запиту: POST /apps/{app_id}/events із тілом, що містить channel, name та data. Pusher Server API підтримує тригери з будь-якого серверного середовища через офіційні бібліотеки (PHP, Ruby, Python, Go, Java, Node.js).

Pusher підтримує batch-тригери — публікацію однієї події в кілька каналів одним запитом. Це ефективніше, ніж послідовні виклики, і гарантує атомарність доставки. За даними тестів продуктивності Pusher (2024), batch-тригер на 100 каналів займає 30–50 мс, тоді як послідовні виклики — 2–5 секунд.

Webhook інтеграція

Pusher WebHook дозволяє вашому серверу отримувати сповіщення про події інфраструктури: підключення клієнта, відключення, виникнення помилки. Webhook-запити підписуються HMAC-SHA256 для верифікації. Це критично для логування, аналітики та синхронізації стану.

Як інтегрувати Pusher у проєкт

Інтеграція Pusher складається з двох частин: серверної (публікація подій) та клієнтської (підписка на події). Розглянемо приклад на Node.js для серверної частини та JavaScript для клієнтської. Для початку необхідно створити застосунок у дашборді Pusher та отримати облікові дані.

За даними документації Pusher (2025), базовий план (Sandbox) включає до 100 одночасних з'єднань і 200 000 повідомлень на день — достатньо для розробки та тестування. Production-плани починаються від $49 на місяць за 1000 з'єднань.

Серверний код: публікація події

js
const Pusher = require('pusher');

const pusher = new Pusher({
    appId: 'YOUR_APP_ID',
    key: 'YOUR_KEY',
    secret: 'YOUR_SECRET',
    cluster: 'eu',
    useTLS: true
});

pusher.trigger('my-channel', 'my-event', {
    message: 'Hello from server',
    timestamp: Date.now()
}).then(() => {
    console.log('Подію опубліковано');
}).catch(console.error);

Клієнтський код: підписка на події

js
import Pusher from 'pusher-js';

const pusher = new Pusher('YOUR_KEY', {
    cluster: 'eu',
    forceTLS: true
});

const channel = pusher.subscribe('my-channel');

channel.bind('my-event', (data) => {
    console.log('Отримано подію:', data);
    displayNotification(data.message);
});

Pusher у мобільних застосунках

Pusher надає SDK для iOS (Swift) та Android (Java/Kotlin), які повністю повторюють функціональність JavaScript-клієнта. Мобільні SDK підтримують ті самі типи каналів, механізм автентифікації та подійну модель. Для React Native доступний пакет pusher-js, що працює через JavaScript-міст.

На мобільних пристроях Pusher SDK автоматично обробляє перемикання між Wi-Fi та мобільною мережею, використовуючи механізм reconnection з експоненційною затримкою. Це особливо важливо для iOS застосунків, де iOS може примусово закривати WebSocket-з'єднання під час фонової роботи.

За даними технічного блогу Pusher (2024), середнє споживання трафіку одним Pusher-з'єднанням становить 1–2 КБ на хвилину за відсутності активних подій. Це досягається завдяки оптимізованому heartbeat-протоколу з інтервалом 30 секунд. Застосунок середнього розміру може підтримувати до 1000 одночасних Pusher-з'єднань без значного впливу на витрату батареї.

Pusher Beams для push-сповіщень

Pusher Beams — додатковий сервіс для надсилання push-сповіщень на мобільні пристрої через APNs (iOS) та FCM (Android). Beams інтегрується з Pusher Channels: подія з каналу може автоматично тригерити push-сповіщення, якщо клієнт не в мережі. Це вирішує проблему доставки повідомлень при закритому застосунку.

Безпека та автентифікація Pusher

Безпека Pusher реалізована на кількох рівнях. Кожен запит до Pusher API підписується HMAC-SHA256 з використанням app_secret. Це гарантує, що лише авторизований сервер може публікувати події. Клієнтські SDK використовують app_key для ідентифікації застосунку, але для доступу до private та presence каналів потрібна додаткова автентифікація.

Автентифікація private-каналів відбувається в три кроки: клієнт викликає pusher.subscribe('private-channel'), Pusher Client SDK надсилає HTTP-запит на ваш backend-ендпоінт (/pusher/auth), сервер перевіряє права користувача та повертає auth-токен, підписаний секретним ключем. Pusher звіряє підпис і дозволяє підписку.

Рекомендується використовувати TLS-з'єднання для всіх запитів (налаштування useTLS: true в SDK). Pusher також підтримує обмеження доступу за IP-адресами для серверних запитів до REST API. Для enterprise-тарифів доступна підтримка VPC (Virtual Private Cloud) та виділених кластерів з ізольованою інфраструктурою.

Поширені запитання

Чим Pusher відрізняється від Socket.IO?

Pusher — це хостинг-сервіс (SaaS), що не потребує керування сервером. Socket.IO — бібліотека, яку потрібно розгортати самостійно. Pusher простіший у налаштуванні, але дорожчий при масштабуванні, Socket.IO потребує DevOps-роботи, але дешевший на великому обсязі.

Скільки коштує Pusher?

Безкоштовний план Sandbox включає 100 з'єднань і 200 000 повідомлень на день. Production-плани стартують від $49/міс (1000 з'єднань, безлімітні повідомлення) до enterprise з індивідуальними умовами.

Як Pusher забезпечує доставку повідомлень?

Pusher використовує WebSocket з автоматичним резервним варіантом на HTTP long-polling. Для критичних повідомлень доступна черга на стороні Pusher із гарантією доставки хоча б один раз (at-least-once).

Чи можна використовувати Pusher в Україні?

Так, Pusher доступний з України через європейський кластер (eu). Затримка становить 50–100 мс для європейських дата-центрів. Для проєктів із вимогами до локалізації даних рекомендується розглянути альтернативи.

Які альтернативи існують у Pusher?

Основні конкуренти — Ably (схожий функціонал, гнучкіші тарифи), PubNub (глобальна мережа доставки), Socket.IO (self-hosted) та Firebase Realtime Database (екосистема Google).

Підсумки

  • Pusher — хмарний SaaS-сервіс для повідомлень у реальному часі, що не потребує керування власною серверною інфраструктурою.
  • Три типи каналів — public (без автентифікації), private (з підписом) та presence (з відстеженням користувачів) — покривають усі сценарії.
  • Подійна модель заснована на іменованих подіях із JSON-payload, що публікуються через REST API.
  • Мобільні SDK для iOS та Android підтримують автоматичне перепідключення та оптимізоване споживання трафіку.
  • Безпека забезпечується HMAC-підписом запитів, TLS-шифруванням та автентифікацією private-каналів через backend.
  • Pusher Beams додає push-сповіщення для офлайн-доставки через APNs та FCM.
  • Для невеликих проєктів із швидким запуском Pusher оптимальний, при великій кількості з'єднань економніше self-hosted Socket.IO.

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також