PubNub — real-time mesajlaşma üçün qlobal şəbəkədir, WebSocket vasitəsilə mesajların dərc edilməsi və abunə olunması üçün minimal gecikmə ilə infrastruktur təmin edir. Yüksək yük və qeyri-sabit bağlantı şəraitində etibarlı məlumat çatdırılması tələb edən tətbiqlər üçün nəzərdə tutulub. PubNub rəsmi sənədlərinə (2025) görə, platforma aylıq 1 trilyon mesajdan çox emal edir və dünya üzrə 70 000+ tətbiqə xidmət göstərir.
Əsas məqamlar
PubNub — 2010-cu ildə əsası qoyulmuş qlobal real-time məlumat ötürmə şəbəkəsidir. O, mesajların dərc edilməsi və abunə olunması üçün API, həmçinin əlavə xidmətlər təmin edir: tarixçənin saxlanması, iştirak statusunun idarəsi, serverless funksiyalar (PubNub Functions) və məlumat axını analitikası.
PubNub arxitekturası paylanmış iştirak nöqtələri şəbəkəsinə (POP) əsaslanır və 15+ coğrafi rayonda yerləşir. Hər bir nöqtə minimal gecikmə ilə nəşriyyatçılar və abunəçilər arasında mesajları marşrutlaşdıran keşləyici brokerlər ehtiva edir. PubNub vahid mərkəzi brokerdən istifadə etmir — hər bir region müstəqil işləyir və qlobal şəbəkə vasitəsilə sinxronlaşır.
PubNub rəsmi saytının (2025) məlumatına görə, platforma 200+ ölkədə 70 000-dən çox tətbiqə xidmət göstərir. Əsas müştərilər arasında Logitech (IoT cihazlarının idarəsi), GoPro (real-time video yayımı), eBay (hərracların sinxronizasiyası) və Snapchat (çat və bildirişlər) var.
PubNub üç prinsip üzərində qurulub: sürət (bir region daxilində 95-ci persentildə 10 ms-dən az gecikmə), etibarlılıq (avtomatik təkrar cəhdlə at-least-once çatdırılma zəmanəti) və miqyaslana bilmə (kanal sayında məhdudiyyət olmadan üfüqi genişlənmə). Platforma mesajları uzunmüddətli yaddaşda saxlamır — tarixçə ayrıca qoşulan Storage & Playback xidməti vasitəsilə əlçatandır.
PubNub iş modeli klassik publish-subscribe nümunəsinə əsaslanır. Nəşriyyat müştərisi publish açarı ilə PubNub REST API vasitəsilə kanalı göstərərək mesaj göndərir. PubNub mesajı bu kanalın bütün abunəçilərinə onların aktiv WebSocket bağlantıları vasitəsilə çatdırır. Abunəçilər mesajı PubNub SDK-da qeydiyyatdan keçmiş callback emalçısı vasitəsilə alır.
Nəqliyyat təbəqəsi PubNub əsas protokol kimi WebSocket-dən istifadə edir, məhdudiyyətli mühitlər üçün HTTP long-polling fallback ilə. SDK avtomatik olaraq bağlantını idarə edir: qurur, heartbeat-i saxlayır (şəbəkədən asılı olaraq hər 15–60 saniyədən bir) və qırılma zamanı yenidən qoşulur.
PubNub-da hər bir mesaj metaməlumatlar ehtiva edir: göndərənin UUID-i, vaxt damğası, sıra nömrəsi (timetoken) və bayraqlar (store, replicate, eatAfterRead). Timetoken — vaxta əsaslanan unikal PubNub identifikatorudur, kanalda mesajların qlobal sırasını təmin edir. PubNub sənədlərinə (2025) görə, timetoken 10 nanosaniyə dəqiqliyə malikdir.
Müştəri mesaj dərc etdikdə, o, Stream Controller — PubNub marşrutlaşdırma modulundan keçir. Stream Controller giriş hüquqlarını (PAM) yoxlayır, transformasiya qaydalarını (PubNub Functions) tətbiq edir, hədəf bölgələri müəyyənləşdirir və mesajı bütün abunəçilərə göndərir. Abunəçi sözdədirsə, mesaj 30 saniyə (standart) buferləşdirilir.
PubNub açar sistemi giriş hüquqlarını üç səviyyəyə ayırır: publish açarı (yalnız dərc), subscribe açarı (yalnız abunə) və secret açarı (administrasiya). Hər bir tətbiq qeydiyyat zamanı üç açardan ibarət dəst alır, lakin secret açarı heç vaxt müştəriyə ötürülmür — yalnız server tərəfində istifadə olunur.
Publish açarı kanallara mesaj göndərmək üçün istifadə olunur. Subscribe açarı — kanallara abunə olmaq və mesaj almaq üçün. Secret açarı — PubNub Access Manager (PAM) vasitəsilə girişi idarə etmək, müvəqqəti auditoriya tokenləri yaratmaq və açarları idarə etmək üçün. Secret açarı serverdə təhlükəsiz şəkildə saxlanılır və heç vaxt müştərilərə açıqlanmır.
PubNub bir neçə autentifikasiya rejimini dəstəkləyir: IP ünvanı ilə (serverlər üçün), məxfi açar ilə (inzibati əməliyyatlar üçün), müvəqqəti tokenlərlə (müştərilər üçün). Müvəqqəti tokenlər PAM vasitəsilə vaxt məhdudiyyəti, kanallar və icazələr (read, write, manage) ilə verilir.
PubNub kanalları — mesajlar üçün adlandırılmış marşrutlardır. Kanalın adı 92 simvola qədər uzunluqda olan sətirdir, latın hərflərini, rəqəmləri, defisləri və alt xətləri dəstəkləyir. Kanallar ilk dərc və ya abunə zamanı dinamik yaradılır. PubNub subscribe sorğusunda * simvolu vasitəsilə kanal şablonlarını dəstəkləyir — bu, kanal qrupuna abunə olmağa imkan verir (məsələn, user-*).
Channel Groups — kütləvi abunə üçün kanalların qruplaşdırılması mexanizmi. 50 ayrı kanala abunə olmaq əvəzinə, müştəri bir qrupa abunə olur və ona daxil olan kanallardan bütün mesajlar avtomatik çatdırılır. Channel Groups iç-içə yerləşməni dəstəkləyir, lakin dərinlik 3 səviyyədən çox olmamalıdır.
PubNub texniki sənədlərinə (2025) görə, bir kanala maksimum abunəçi sayı 50 000-dir. Daha yüksək yüklər üçün prefikslərlə kanallardan istifadə etmək və auditoriyanı şardlaşdırmaq tövsiyə olunur (məsələn, chat-room-001, chat-room-002). Channel Groups həmçinin coğrafi və ya tematik prinsipə görə təşkil edilə bilər.
| Parametr | Maksimum | Qeyd |
|---|---|---|
| Kanal adının uzunluğu | 92 simvol | Latın hərfləri, rəqəmlər, -, _ |
| Kanala abunəçilər | 50 000 | Yuxarı — şardlaşdırmaq |
| Channel Groups | 2000 qrup / açar | Qrupda 500 kanala qədər |
| Tarixçə (storage) | Limitsiz | Saxlama həcminə görə ödəniş |
PubNub inteqrasiyası qeydiyyat, idarəetmə panelində tətbiq yaratmaq və açar dəsti əldə etmək tələb edir. PubNub kitabxanaları JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go və bir çox başqa dillər üçün mövcuddur. Brauzer və Node.js üçün JavaScript nümunəsinə baxaq.
PubNub sənədlərinə (2025) görə, pubnub-js kitabxanası həm CommonJS, həm də ES Module importunu dəstəkləyir. Brauzer üçün npm vasitəsilə qurma və sonra webpack və ya vite ilə bundle etmək tövsiyə olunur.
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('Yeni mesaj:', event.message);
},
presence: (event) => {
console.log('Iştirak:', event.uuid, event.action);
}
});
pubnub.publish({
channel: 'chat-general',
message: { text: 'Hello everyone!', sender: 'user-100' }
});
pubnub.fetchMessages(
{ channels: ['chat-general'], count: 50 },
(status, response) => {
if (status.error) {
console.error('Tarixçənin yüklənmə xətası', status);
return;
}
const messages = response.channels['chat-general'];
messages.forEach((msg) => {
console.log(msg.message, msg.timetoken);
});
}
);
PubNub Functions — mesajların PubNub tərəfində emalı üçün serverless platformadır. Funksiyalar JavaScript ilə yazılır və təhlükəsiz izolyasiya olunmuş mühitdə (V8 isolate) icra olunur. Onlar mesajları abunəçilərə çatdırılmazdan əvvəl transformasiya edə, filtrləyə, buferləşdirə və yönləndirə bilər.
Stream Controller — qaydalar əsasında mesaj axınını idarə edən daxili marşrutlaşdırma mexanizmidir. Qaydalar hansı mesajların çatdırılacağını, hansının atılacağını və hansının emal üçün PubNub Functions-a yönləndiriləcəyini müəyyən edir. Stream Controller mesajın məzmununa, kanal tipinə və ya metaməlumatlara görə şərti marşrutlaşdırmanı dəstəkləyir.
PubNub bloquna (2024) görə, PubNub Functions mesaj emalı üçün server infrastrukturu xərclərini 40–60% azaldır, çünki filtrləmə və transformasiya məntiqi PubNub-un kənar qovşaqlarında icra olunur, öz serverdə yox. Funksiyalar HTTP sorğularına, Key-Value yaddaşına və eyni məkanda digər funksiyalara giriş imkanına malikdir.
Mobil platformalar üçün PubNub SDK iOS (Swift), Android (Kotlin/Java), Flutter (Dart) və React Native (JavaScript) üçün mövcuddur. Mobil SDK-lar tam funksiya dəstini dəstəkləyir: pub/sub, iştirak, tarixçə, PAM və PubNub Functions. Push bildirişləri üçün PubNub xüsusi mobile push gateway mexanizmi vasitəsilə APNs və FCM ilə inteqrasiya olunur.
Mobil cihazlar üçün optimallaşdırma adaptiv heartbeat, mesajların toplu emalı və fon rejimlərinin dəstəyini əhatə edir. iOS üçün PubNub SDK tətbiq minimuma endirildikdə bağlantını saxlamaq üçün Background Task API-dən istifadə edir (standart fon vaxtı 30 saniyəyə qədər). Daha uzun fon işi üçün push bildirişlərindən istifadə tələb olunur.
Mobile Push Gateway — PubNub vasitəsilə push bildirişlərinin göndərilməsi mexanizmi. Mesaj kanala dərc edildikdə, PubNub avtomatik olaraq hansı abunəçilərin oflayn olduğunu müəyyən edir və onlara APNs (iOS) və ya FCM (Android) vasitəsilə push bildirişi göndərir. Konfiqurasiya idarəetmə panelində bir dəfə yerinə yetirilir — bundan sonra kanaldakı bütün mesajlar avtomatik olaraq push kanalına təkrarlanır. PubNub sənədlərinə (2025) görə, gateway saniyədə 10 000 push bildirişinə qədər emal edir.
Tez-tez verilən suallar
PubNub daha çox SDK (75+ platforma), daxili serverless funksiyalar və mesaj emalı üçün Stream Controller təklif edir. Pusher quraşdırmada daha sadədir, lakin PubNub marşrutlaşdırma və məlumat transformasiyası üzərində daha çox nəzarət verir.
PubNub nasazlıqlar zamanı avtomatik təkrar cəhdlə at-least-once mexanizmindən istifadə edir. Hər bir mesaj deduplikasiya üçün unikal timetoken-ə malikdir. Mesajlar oflayn abunəçilər üçün 30 saniyə buferləşdirilir.
Pulsuz plan 100 eyni vaxtlı bağlantı və ayda 1 milyon mesaj əhatə edir. Ödənişli planlar ayda $49-dan başlayır, 1000 eyni vaxtlı bağlantı və limitsiz mesaj sayı üçün.
Bəli, PubNub bütün bağlantılar üçün TLS 1.3-ü və PAM vasitəsilə açar idarəetməsi ilə müştəri tərəfində end-to-end şifrələməni (AES-256) dəstəkləyir. Enterprise müştərilər üçün Cipher Key rejimi mövcuddur.
PubNub 75+ platforma üçün SDK təmin edir, o cümlədən JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust və Objective-C. Bu real-time xidmətlər arasında ən böyük ekosistemdir.
Xülasə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun