Pusher — шта је то, платформа у реалном времену и интеграција у апликације

Аутор: IT Sectr Објављено: 2026-06-01 Време читања: 8 мин

Pusher: хостовани сервис за двосмерну комуникацију у реалном времену, који пружа инфраструктуру за канале, догађаје и вебхук обавештења. Ослобађа програмера потребе за постављањем сопственог WebSocket сервера и обезбеђује доставу порука милионима уређаја. Према званичној документацији Pusher (2025), сервис обрађује преко 40 милијарди порука месечно широм света.

Главне тачке

  • Pusher — облачни сервис за поруке у реалном времену, који не захтева сопствено управљање сервером.
  • Канали и догађаји — објављивање порука се врши преко именованих канала са подршком за типове: public, private, presence.
  • WebSocket транспорт — клијенти се повезују преко WebSocket-а са fallback-ом на HTTP polling.
  • Webhook интеграција — догађаји на серверу се достављају на ваш backend путем HTTP-хукова.
  • SDK за све платформе — готови клијенти за JavaScript, iOS, Android, React Native и серверске језике.

Шта је Pusher?

Pusher — облачни сервис за двосмерну комуникацију у реалном времену, основан 2011. године. Пружа готову инфраструктуру за слање и примање порука у реалном времену без потребе за управљањем сопственим WebSocket сервером. Pusher се користи за изградњу ћаскања, лајв обавештења, заједничко уређивање и табле резултата у играма.

За разлику од библиотека као што је Socket.IO, које захтевају постављање и одржавање сопственог сервера, Pusher ради по моделу SaaS (Software as a Service). Програмер се региструје, добија кључеве (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 захтева ка Pusher API-ју, платформа одређује циљни канал и шаље поруку свим клијентима претплаћеним на тај канал. Клијенти примају догађај преко већ отворене WebSocket везе, што обезбеђује кашњење од 50–100 ms у зависности од географске локације.

Сваки клијент успоставља везу преко Pusher Client SDK-а, који аутоматски бира транспорт (WebSocket — приоритет, HTTP long-polling — fallback). 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 за искључивање поновног слања иницијатору догађаја.

Окидачи (trigger) — то су HTTP POST захтеви ка Pusher API-ју који објављују догађај у каналу. Формат захтева: 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 ms, док секвенцијални позиви трају 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 и мобилне мреже, користећи механизам поновног повезивања са експоненцијалним кашњењем. Ово је посебно важно за iOS апликације, где iOS може присилно затворити WebSocket везе током рада у позадини.

Према техничком блогу Pusher (2024), просечна потрошња саобраћаја једне Pusher везе је 1–2 KB у минути при одсуству активних догађаја. Ово се постиже захваљујући оптимизованом 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 са аутоматским fallback-ом на HTTP long-polling. За критичне поруке доступан је ред на страни Pusher са гаранцијом доставе бар једном (at-least-once).

Може ли се Pusher користити у Русији?

Да, Pusher је доступан из Русије преко европског кластера (eu). Кашњење износи 50–100 ms за европске центре података. За пројекте са захтевима за локализацију података препоручује се разматрање алтернатива.

Које алтернативе постоје за 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. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође