PubNub — real-time xabar almashish uchun global tarmoq bo'lib, WebSocket orqali xabarlarni nashr qilish va obuna bo'lish uchun minimal kechikish bilan infratuzilma taqdim etadi. Yuqori yuklama va beqaror ulanish sharoitida ishonchli ma'lumot yetkazib berishni talab qiladigan ilovalar uchun mo'ljallangan. PubNub rasmiy hujjatlariga (2025) ko'ra, platforma oyiga 1 trillion xabardan ko'proq qayta ishlaydi va dunyo bo'ylab 70 000+ ilovaga xizmat ko'rsatadi.
Asosiy fikrlar
PubNub — 2010 yilda asos solingan global real-time ma'lumot uzatish tarmog'idir. U xabarlarni nashr qilish va obuna bo'lish uchun API, shuningdek qo'shimcha xizmatlar: tarixni saqlash, ishtirokni boshqarish, serverless funksiyalar (PubNub Functions) va ma'lumot oqimi analitikasini taqdim etadi.
PubNub arxitekturasi tarqatilgan ishtirok nuqtalari tarmog'iga (POP) asoslangan bo'lib, 15+ geografik mintaqada joylashgan. Har bir nuqta minimal kechikish bilan nashriyotchilar va obunachilar o'rtasida xabarlarni marshrutlaydigan keshlovchi brokerlarni o'z ichiga oladi. PubNub yagona markaziy brokerdan foydalanmaydi — har bir mintaqa mustaqil ishlaydi va global tarmoq orqali sinxronlanadi.
PubNub rasmiy saytiga (2025) ko'ra, platforma 200+ mamlakatda 70 000 dan ortiq ilovaga xizmat ko'rsatadi. Asosiy mijozlar orasida Logitech (IoT qurilmalarini boshqarish), GoPro (real-time video translyatsiyasi), eBay (auksionlarni sinxronlash) va Snapchat (chat va bildirishnomalar) bor.
PubNub uch tamoyilga asoslanadi: tezlik (bitta mintaqa ichida 95-persentilda 10 ms dan kam kechikish), ishonchlilik (avtomatik qayta urinish bilan at-least-once yetkazib berish kafolati) va masshtablash (kanallar sonida cheklovsiz gorizontal kengayish). Platforma xabarlarni uzoq muddatli saqlashda saqlamaydi — tarix alohida ulangan Storage & Playback xizmati orqali mavjud.
PubNub ish modeli klassik publish-subscribe naqshiga asoslanadi. Nashriyot mijozi publish kaliti bilan PubNub REST API orqali kanalni ko'rsatib xabar yuboradi. PubNub xabarni ushbu kanalning barcha obunachilariga ularning faol WebSocket ulanishlari orqali yetkazadi. Obunachilar xabarni PubNub SDKda ro'yxatdan o'tgan callback qayta ishlovchisi orqali oladi.
Transport qatlami PubNub asosiy protokol sifatida WebSocket-dan foydalanadi, cheklovli muhitlar uchun HTTP long-polling fallback bilan. SDK ulanishni avtomatik boshqaradi: o'rnatadi, heartbeat-ni saqlaydi (tarmoqqa qarab har 15–60 soniyada) va uzilishda qayta ulanadi.
PubNubdagi har bir xabar metama'lumotlarni o'z ichiga oladi: jo'natuvchining UUID-si, vaqt tamg'asi, tartib raqami (timetoken) va bayroqlar (store, replicate, eatAfterRead). Timetoken — vaqtga asoslangan noyob PubNub identifikatori bo'lib, kanaldagi xabarlarning global tartibini kafolatlaydi. PubNub hujjatlariga (2025) ko'ra, timetoken 10 nanosekund aniqlikka ega.
Mijoz xabarni nashr qilganda, u Stream Controller — PubNub marshrutlash modulidan o'tadi. Stream Controller kirish huquqlarini (PAM) tekshiradi, transformatsiya qoidalarini (PubNub Functions) qo'llaydi, maqsadli mintaqalarni aniqlaydi va xabarni barcha obunachilarga yuboradi. Agar obunachi uzilgan bo'lsa, xabar 30 soniya (standart) buferlanadi.
PubNub kalit tizimi kirish huquqlarini uch darajaga ajratadi: publish kaliti (faqat nashr), subscribe kaliti (faqat obuna) va secret kaliti (boshqaruv). Har bir ilova ro'yxatdan o'tishda uchta kalit to'plamini oladi, lekin secret kaliti hech qachon mijozga uzatilmaydi — faqat server tomonida ishlatiladi.
Publish kaliti kanallarga xabar yuborish uchun ishlatiladi. Subscribe kaliti — kanallarga obuna bo'lish va xabar olish uchun. Secret kaliti — PubNub Access Manager (PAM) orqali kirishni boshqarish, vaqtinchalik auditoriya tokenlarini yaratish va kalitlarni boshqarish uchun. Secret kaliti serverda xavfsiz saqlanadi va hech qachon mijozlarga oshkor etilmaydi.
PubNub bir nechta autentifikatsiya rejimini qo'llab-quvvatlaydi: IP manzili bo'yicha (serverlar uchun), maxfiy kalit bo'yicha (ma'muriy operatsiyalar uchun), vaqtinchalik tokenlar bo'yicha (mijozlar uchun). Vaqtinchalik tokenlar PAM orqali vaqt cheklovi, kanallar va huquqlar (read, write, manage) bilan beriladi.
PubNub kanallari — xabarlar uchun nomlangan marshrutlardir. Kanal nomi 92 belgigacha uzunlikdagi qator bo'lib, lotin harflari, raqamlar, defislar va pastki chiziqlarni qo'llab-quvvatlaydi. Kanallar birinchi nashr yoki obuna paytida dinamik yaratiladi. PubNub subscribe so'rovida * belgisi orqali kanal shablonlarini qo'llab-quvvatlaydi — bu kanallar guruhiga obuna bo'lish imkonini beradi (masalan, user-*).
Channel Groups — ommaviy obuna uchun kanallarni guruhlash mexanizmi. 50 ta alohida kanalga obuna bo'lish o'rniga, mijoz bitta guruhga obuna bo'ladi va uning tarkibidagi kanallardan barcha xabarlar avtomatik yetkaziladi. Channel Groups ichki joylashuvni qo'llab-quvvatlaydi, lekin chuqurlik 3 darajadan oshmasligi kerak.
PubNub texnik hujjatlariga (2025) ko'ra, bitta kanalga maksimal obunachi soni 50 000. Yuqori yuklamalar uchun prefikslar bilan kanallardan foydalanish va auditoriyani shardlash tavsiya etiladi (masalan, chat-room-001, chat-room-002). Channel Groups shuningdek geografik yoki tematik printsip bo'yicha tashkil etilishi mumkin.
| Parametr | Maksimal | Izoh |
|---|---|---|
| Kanal nomi uzunligi | 92 belgi | Lotin harflari, raqamlar, -, _ |
| Kanaldagi obunachilar | 50 000 | Ko'proq — shardlash |
| Channel Groups | 2000 guruh / kalit | Guruhda 500 kanalgacha |
| Tarix (storage) | Cheksiz | Saqlash hajmiga qarab to'lov |
PubNub integratsiyasi ro'yxatdan o'tish, boshqaruv panelida ilova yaratish va kalitlar to'plamini olishni talab qiladi. PubNub kutubxonalari JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go va boshqa ko'plab tillar uchun mavjud. Brauzer va Node.js uchun JavaScript misolini ko'rib chiqaylik.
PubNub hujjatlariga (2025) ko'ra, pubnub-js kutubxonasi ham CommonJS, ham ES Module importini qo'llab-quvvatlaydi. Brauzer uchun npm orqali o'rnatish va keyin webpack yoki vite bilan bundle qilish tavsiya etiladi.
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('Yangi xabar:', event.message);
},
presence: (event) => {
console.log('Ishtirok:', 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('Tarixni yuklashda xatolik', status);
return;
}
const messages = response.channels['chat-general'];
messages.forEach((msg) => {
console.log(msg.message, msg.timetoken);
});
}
);
PubNub Functions — xabarlarni PubNub tomonida qayta ishlash uchun serverless platformadir. Funksiyalar JavaScript tilida yoziladi va xavfsiz izolyatsiya qilingan muhitda (V8 isolate) bajariladi. Ular xabarlarni obunachilarga yetkazilishidan oldin transformatsiya qilishi, filtrlashi, buferlashi va yo'naltirishi mumkin.
Stream Controller — qoidalar asosida xabarlar oqimini boshqaradigan o'rnatilgan marshrutlash mexanizmi. Qoidalar qaysi xabarlar yetkazilishini, qaysilari tashlab yuborilishini va qaysilari qayta ishlash uchun PubNub Functions-ga yo'naltirilishini aniqlaydi. Stream Controller xabar mazmuni, kanal turi yoki metama'lumotlar bo'yicha shartli marshrutlashni qo'llab-quvvatlaydi.
PubNub blogiga (2024) ko'ra, PubNub Functions xabarlarni qayta ishlash uchun server infratuzilmasi xarajatlarini 40–60% ga kamaytiradi, chunki filtrlash va transformatsiya mantig'i PubNubning chekka tugunlarida bajariladi, o'z serverda emas. Funksiyalar HTTP so'rovlariga, Key-Value saqlashga va bir xil fazodagi boshqa funksiyalarga kirish imkoniyatiga ega.
Mobil platformalar uchun PubNub SDK iOS (Swift), Android (Kotlin/Java), Flutter (Dart) va React Native (JavaScript) uchun mavjud. Mobil SDK-lar to'liq funksiyalar to'plamini qo'llab-quvvatlaydi: pub/sub, ishtirok, tarix, PAM va PubNub Functions. Push bildirishnomalari uchun PubNub maxsus mobile push gateway mexanizmi orqali APNs va FCM bilan integratsiyalanadi.
Mobil qurilmalar uchun optimallashtirish adaptiv heartbeat, xabarlarni partiyaviy qayta ishlash va fon rejimlarini qo'llab-quvvatlashni o'z ichiga oladi. iOS uchun PubNub SDK ilova minimallashtirilganda ulanishni saqlash uchun Background Task API-dan foydalanadi (standart fon vaqti 30 soniyagacha). Uzoqroq fon ishi uchun push bildirishnomalaridan foydalanish talab qilinadi.
Mobile Push Gateway — PubNub orqali push bildirishnomalarini yuborish mexanizmi. Xabar kanalda nashr qilinganda, PubNub avtomatik ravishda qaysi obunachilar oflayn ekanligini aniqlaydi va ularga APNs (iOS) yoki FCM (Android) orqali push bildirishnomasini yuboradi. Sozlash boshqaruv panelida bir marta amalga oshiriladi — shundan so'ng kanaldagi barcha xabarlar avtomatik ravishda push kanaliga takrorlanadi. PubNub hujjatlariga (2025) ko'ra, gateway sekundiga 10 000 tagacha push bildirishnomasini qayta ishlaydi.
Tez-tez so'raladigan savollar
PubNub ko'proq SDK (75+ platforma), o'rnatilgan serverless funksiyalar va xabarlarni qayta ishlash uchun Stream Controller taklif qiladi. Pusher sozlashda soddaroq, ammo PubNub marshrutlash va ma'lumot transformatsiyasi ustida ko'proq nazorat beradi.
PubNub xatoliklarda avtomatik qayta urinish bilan at-least-once mexanizmidan foydalanadi. Har bir xabar deduplikatsiya uchun noyob timetoken-ga ega. Xabarlar oflayn obunachilar uchun 30 soniya buferlanadi.
Bepul reja 100 ta bir vaqtli ulanish va oyiga 1 million xabarni o'z ichiga oladi. Pulli rejalar oyiga $49 dan boshlanadi, 1000 ta bir vaqtli ulanish va cheksiz xabarlar soni uchun.
Ha, PubNub barcha ulanishlar uchun TLS 1.3 ni va PAM orqali kalit boshqaruvi bilan mijoz tomonida end-to-end shifrlashni (AES-256) qo'llab-quvvatlaydi. Enterprise mijozlar uchun Cipher Key rejimi mavjud.
PubNub 75+ platforma uchun SDK taqdim etadi, jumladan JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust va Objective-C. Bu real-time xizmatlar orasidagi eng katta ekotizimdir.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.