PubNub — шта је то, real-time SDK и како ради у апликацијама

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

PubNub — глобална мрежа за real-time размену порука, која пружа инфраструктуру за објављивање и претплату на поруке путем WebSocket-а са минималним кашњењем. Намењена је апликацијама које захтевају поуздану испоруку података при великом оптерећењу и нестабилној вези. Према званичној документацији PubNub (2025), платформа месечно обрађује преко 1 билион порука за 70 000+ апликација широм света.

Главне карактеристике

  • PubNub — глобална мрежа за real-time поруке са 15+ дата центара и гарантованом испоруком.
  • Pub/Sub са кључевима — објављивање и претплата путем publish/subscribe кључева са раздвајањем права приступа.
  • Stream Controller — управљање током порука уз подршку за филтрирање, трансформацију и баферовање.
  • Presence — праћење онлајн статуса учесника канала са детекцијом по тајмауту.
  • SDK за 75+ платформи — највећи екосистем клијентских библиотека међу real-time сервисима.

Шта је PubNub?

PubNub — глобална мрежа за пренос података у реалном времену, основана 2010. године. Пружа API за објављивање и претплату на поруке, као и додатне услуге: чување историје, управљање присуством, serverless функције (PubNub Functions) и аналитику токова података.

Архитектура PubNub-а се заснива на дистрибуираној мрежи тачака присуства (POP) смештених у 15+ географских региона. Свака тачка садржи кеширајуће брокере који усмеравају поруке између издавача и претплатника са минималним кашњењем. PubNub не користи јединственог централног брокера — сваки регион ради независно и синхронизује се преко глобалне мреже.

Према званичном сајту PubNub (2025), платформа опслужује преко 70 000 апликација у 200+ земаља. Међу кључним клијентима су Logitech (управљање IoT уређајима), GoPro (емитовање видеа у реалном времену), eBay (синхронизација аукција) и Snapchat (ћаскање и обавештења).

Кључни принципи PubNub-а

PubNub је изграђен на три принципа: брзина (кашњење мање од 10 ms у 95. перцентилу у оквиру једног региона), поузданост (гаранција испоруке at-least-once са аутоматским понављањем) и скалабилност (хоризонтално проширење без ограничења броја канала). Платформа не чува поруке у дуготрајном складишту — историја је доступна путем засебно прикључљивог сервиса Storage & Playback.

Како ради PubNub

Модел рада PubNub-а се заснива на класичном publish-subscribe обрасцу. Клијент издавача шаље поруку са навођењем канала путем PubNub REST API-ја са publish кључем. PubNub доставља поруку свим претплатницима овог канала путем њихових активних WebSocket веза. Претплатници примају поруку путем callback-обрађивача регистрованог у PubNub SDK-у.

Транспортни слој PubNub-а користи WebSocket као главни протокол, са fallback-ом на HTTP long-polling за окружења са ограничењима. SDK аутоматски управља везом: успоставља, одржава heartbeat (сваких 15–60 секунди у зависности од мреже) и поново се повезује при прекиду.

Свака порука у PubNub-у садржи метаподатке: UUID пошиљаоца, временску ознаку, редни број (timetoken) и заставице (store, replicate, eatAfterRead). Timetoken — јединствени идентификатор PubNub-а заснован на времену, који гарантује глобални редослед порука у каналу. Према документацији PubNub (2025), timetoken има резолуцију од 10 наносекунди.

Ток поруке

Када клијент објави поруку, она пролази кроз Stream Controller — модул за усмеравање PubNub-а. Stream Controller проверава права приступа (PAM), примењује правила трансформације (PubNub Functions), одређује циљне регионе и шаље поруку свим претплатницима. Ако је претплатник искључен, порука се баферује 30 секунди (подразумевано) у очекивању поновног успостављања везе.

Кључеви PubNub: publish, subscribe, secret

Систем кључева PubNub-а дели права приступа на три нивоа: publish кључ (само објављивање), subscribe кључ (само претплата) и secret кључ (администрација). Свака апликација добија сет од три кључа при регистрацији, али secret кључ се никада не преноси клијенту — користи се само на серверској страни.

Publish кључ се користи за слање порука у канале. Subscribe кључ — за претплату на канале и примање порука. Secret кључ — за управљање приступом путем PubNub Access Manager-а (PAM), креирање привремених токена публике и управљање кључевима. Secret кључ се чува безбедно на серверу и никада се не открива клијентима.

PubNub подржава више режима аутентификације: по IP адреси (за сервере), по тајном кључу (за административне операције), по привременим токенима (за клијенте). Привремени токени се издају путем PAM-а са ограниченим временом трајања, каналима и правима (read, write, manage).

Канали PubNub

Канали PubNub-а — именоване руте за поруке. Име канала је низ дужине до 92 карактера, који подржава латинична слова, бројеве, цртице и доње црте. Канали се креирају динамички при првом објављивању или претплати. PubNub подржава шаблоне канала путем симбола * у subscribe захтеву — ово омогућава претплату на групу канала (нпр. user-*).

Channel Groups — механизам груписања канала за масовну претплату. Уместо претплате на 50 појединачних канала, клијент се претплаћује на једну групу, и све поруке из канала који је чине аутоматски се достављају клијенту. Channel Groups подржавају угњеждавање, али дубина не сме да прелази 3 нивоа.

Према техничкој документацији PubNub (2025), максимални број претплатника на један канал је 50 000. За већа оптерећења препоручује се коришћење канала са префиксима и шардовање публике (нпр. chat-room-001, chat-room-002). Channel Groups се такође могу организовати по географском или тематском принципу.

ПараметарМаксимумНапомена
Дужина имена канала92 карактераЛатиница, бројеви, -, _
Претплатника по каналу50 000Више — шардовати
Channel Groups2000 група / кључДо 500 канала у групи
Историја (storage)Без ограничењаПлаћање по обиму складиштења

Како користити PubNub у пројекту

Интеграција PubNub-а захтева регистрацију, креирање апликације у админ панелу и добијање сета кључева. Библиотеке PubNub-а су доступне за JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go и многе друге језике. Погледајмо пример у JavaScript-у за прегледач и Node.js.

Према документацији PubNub (2025), библиотека pubnub-js подржава и CommonJS и ES Module импорт. За прегледач се препоручује инсталација путем npm-а и накнадно паковање путем webpack-а или vite-а.

Претплата на канал

js
import PubNub from 'pubnub';

const pubnub = new PubNub({
    publishKey: 'PUBLISH_KEY',
    subscribeKey: 'SUBSCRIBE_KEY',
    userId: 'user-100'
});

pubnub.subscribe({
    channels: ['chat-general']
});

pubnub.addListener({
    message: (event) => {
        console.log('Нова порука:', event.message);
    },
    presence: (event) => {
        console.log('Присуство:', event.uuid, event.action);
    }
});

pubnub.publish({
    channel: 'chat-general',
    message: { text: 'Hello everyone!', sender: 'user-100' }
});

Добијање историје порука

js
pubnub.fetchMessages(
    { channels: ['chat-general'], count: 50 },
    (status, response) => {
        if (status.error) {
            console.error('Грешка при преузимању историје', status);
            return;
        }
        const messages = response.channels['chat-general'];
        messages.forEach((msg) => {
            console.log(msg.message, msg.timetoken);
        });
    }
);

PubNub Functions и Stream Controller

PubNub Functions — serverless платформа за обраду порука на страни PubNub-а. Функције се пишу у JavaScript-у и извршавају се у безбедном изолованом окружењу (V8 isolate). Оне могу трансформисати, филтрирати, баферовати и преусмеравати поруке пре него што буду достављене претплатницима.

Stream Controller — уграђени механизам усмеравања који управља током порука на основу правила. Правила одређују које поруке се достављају, које се одбацују, а које се усмеравају на PubNub Functions за обраду. Stream Controller подржава условно усмеравање према садржају поруке, типу канала или метаподацима.

Према блогу PubNub (2024), PubNub Functions смањују трошкове серверске инфраструктуре за обраду порука за 40–60% захваљујући томе што се логика филтрирања и трансформације извршава на ивичним чворовима PubNub-а, а не на сопственом серверу. Функције имају приступ HTTP захтевима, Key-Value складишту и другим функцијама у истом простору.

PubNub у мобилним апликацијама

PubNub SDK за мобилне платформе су доступни за iOS (Swift), Android (Kotlin/Java), Flutter (Dart) и React Native (JavaScript). Мобилни SDK-ови подржавају пун сет функција: pub/sub, присуство, историју, PAM и PubNub Functions. За push обавештења PubNub се интегрише са APNs и FCM путем посебног механизма mobile push gateway.

Оптимизација за мобилне уређаје укључује адаптивни heartbeat, групну обраду порука и подршку за позадинске режиме. PubNub SDK за iOS користи Background Task API за одржавање везе када је апликација минимизирана (до 30 секунди стандардног позадинског времена). За дужи позадински рад потребно је користити push обавештења.

Mobile Push Gateway — механизам слања push обавештења путем PubNub-а. Када се порука објави у каналу, PubNub аутоматски одређује који претплатници су ван мреже и шаље им push обавештење путем APNs (iOS) или FCM (Android). Подешавање се врши једном у админ панелу — након тога све поруке из канала се аутоматски дуплирају у push канал. Према документацији PubNub (2025), gateway обрађује до 10 000 push обавештења у секунди.

Често постављана питања

По чему се PubNub разликује од Pusher-а?

PubNub нуди више SDK-ова (75+ платформи), уграђене serverless функције и Stream Controller за обраду порука. Pusher је једноставнији за подешавање, али PubNub пружа већу контролу над усмеравањем и трансформацијом података.

Како PubNub гарантује испоруку порука?

PubNub користи at-least-once механизам са аутоматским понављањем приликом грешака. Свака порука има јединствени timetoken за дедупликацију. Поруке се баферују 30 секунди за ванмрежне претплатнике.

Колико кошта PubNub?

Бесплатни план укључује 100 истовремених веза и 1 милион порука месечно. Плаћени планови почињу од $49/месец за 1000 истовремених веза са неограниченим бројем порука.

Да ли PubNub подржава шифровање?

Да, PubNub подржава TLS 1.3 за све везе и опционо end-to-end шифровање на клијенту (AES-256) са управљањем кључевима путем PAM-а. За enterprise клијенте доступан је Cipher Key режим.

Које језике подржава PubNub SDK?

PubNub обезбеђује SDK за 75+ платформи, укључујући JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust и Objective-C. Ово је највећи екосистем међу real-time сервисима.

Закључак

  • PubNub — глобална мрежа за real-time размену порука са 15+ дата центара и подршком за 75+ платформи.
  • Систем кључева publish/subscribe/secret + PAM обезбеђује флексибилно управљање правима приступа.
  • PubNub Functions омогућавају serverless обраду порука без сопствене серверске инфраструктуре.
  • Stream Controller управља усмеравањем, филтрирањем и трансформацијом порука на ивичним чворовима мреже.
  • Mobile Push Gateway аутоматски шаље push преко APNs и FCM за ванмрежне претплатнике.
  • Канали подржавају до 50 000 претплатника, а Channel Groups поједностављују управљање са више канала.
  • За пројекте са широком платформском подршком и уграђеном обрадом порука изаберите PubNub; за једноставније сценарије довољан је Pusher.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

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

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