PubNub ریئل ٹائم میسجنگ کے لیے ایک عالمی نیٹ ورک ہے جو کم سے کم تاخیر کے ساتھ WebSocket کے ذریعے پیغامات شائع اور سبسکرائب کرنے کے لیے بنیادی ڈھانچہ فراہم کرتا ہے۔ یہ ایسی ایپلیکیشنز کے لیے ڈیزائن کیا گیا ہے جنہیں زیادہ بوجھ اور غیر مستحکم کنکشنز کے تحت قابل اعتماد ڈیٹا ڈیلیوری کی ضرورت ہوتی ہے۔ سرکاری PubNub دستاویزات (2025) کے مطابق، پلیٹ فارم دنیا بھر میں 70,000+ ایپلیکیشنز کے لیے ماہانہ 1 ٹریلین پیغامات سے زیادہ پروسیس کرتا ہے۔
اہم نکات
PubNub 2010 میں قائم کردہ ایک عالمی ریئل ٹائم ڈیٹا نیٹ ورک ہے۔ یہ پیغامات شائع اور سبسکرائب کرنے کے لیے API فراہم کرتا ہے، نیز اضافی خدمات: ہسٹری اسٹوریج، موجودگی کا انتظام، سرور لیس فنکشنز (PubNub Functions) اور ڈیٹا اسٹریم تجزیہ۔
PubNub کا فن تعمیر 15 سے زیادہ جغرافیائی علاقوں میں واقع موجودگی پوائنٹس کے تقسیم شدہ نیٹ ورک (POP) پر مبنی ہے۔ ہر پوائنٹ میں کیشنگ بروکرز ہوتے ہیں جو ناشروں اور سبسکرائبرز کے درمیان کم سے کم تاخیر کے ساتھ پیغامات روٹ کرتے ہیں۔ PubNub ایک مرکزی بروکر استعمال نہیں کرتا — ہر علاقہ آزادانہ طور پر کام کرتا ہے اور عالمی نیٹ ورک کے ذریعے ہم آہنگ ہوتا ہے۔
سرکاری PubNub ویب سائٹ (2025) کے مطابق، پلیٹ فارم 200+ ممالک میں 70,000 سے زیادہ ایپلیکیشنز کی خدمت کرتا ہے۔ اہم گاہکوں میں Logitech (IoT ڈیوائس مینجمنٹ)، GoPro (ریئل ٹائم ویڈیو اسٹریمنگ)، eBay (نیلامی سنکرونائزیشن) اور Snapchat (چیٹ اور اطلاعات) شامل ہیں۔
PubNub تین اصولوں پر تعمیر کیا گیا ہے: رفتار (ایک علاقے کے اندر 95ویں پرسنٹائل میں 10 ms سے کم تاخیر)، اعتماد (خودکار دوبارہ کوشش کے ساتھ at-least-once ڈیلیوری کی ضمانت) اور توسیع پذیری (چینلز کی تعداد پر کوئی حد نہیں کے ساتھ افقی توسیع)۔ پلیٹ فارم پیغامات کو طویل مدتی اسٹوریج میں محفوظ نہیں کرتا — ہسٹری علیحدہ طور پر منسلک Storage & Playback سروس کے ذریعے دستیاب ہے۔
PubNub کا آپریشن ماڈل کلاسک پبلش-سبسکرائب پیٹرن پر مبنی ہے۔ ناشر کلائنٹ publish کلید کے ساتھ PubNub REST API کے ذریعے چینل بتاتے ہوئے ایک پیغام بھیجتا ہے۔ PubNub ان کے فعال WebSocket کنکشنز کے ذریعے اس چینل کے تمام سبسکرائبرز کو پیغام پہنچاتا ہے۔ سبسکرائبرز PubNub SDK میں رجسٹرڈ کال بیک ہینڈلر کے ذریعے پیغام وصول کرتے ہیں۔
PubNub کی ٹرانسپورٹ پرت بنیادی پروٹوکول کے طور پر WebSocket استعمال کرتی ہے، جس میں پابندیوں والے ماحول کے لیے HTTP long-polling پر فال بیک ہے۔ SDK خود بخود کنکشن کا انتظام کرتا ہے: قائم کرنا، ہارٹ بیٹ برقرار رکھنا (نیٹ ورک کے لحاظ سے ہر 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 کلید (انتظامیہ)۔ ہر ایپلیکیشن رجسٹریشن پر تین کیز کا ایک سیٹ وصول کرتی ہے، لیکن secret کلید کبھی بھی کلائنٹ کو منتقل نہیں کی جاتی — یہ صرف سرور سائیڈ پر استعمال ہوتی ہے۔
Publish کلید چینلز پر پیغامات بھیجنے کے لیے استعمال ہوتی ہے۔ Subscribe کلید چینلز سبسکرائب کرنے اور پیغامات وصول کرنے کے لیے استعمال ہوتی ہے۔ Secret کلید PubNub Access Manager (PAM) کے ذریعے رسائی کے انتظام، عارضی سامعین ٹوکن بنانے اور کلیدی انتظام کے لیے استعمال ہوتی ہے۔ Secret کلید سرور پر محفوظ رکھی جاتی ہے اور کبھی بھی کلائنٹس پر ظاہر نہیں کی جاتی۔
PubNub متعدد تصدیقی طریقوں کی حمایت کرتا ہے: IP ایڈریس کے ذریعے (سرورز کے لیے)، secret کلید کے ذریعے (انتظامی کارروائیوں کے لیے)، عارضی ٹوکن کے ذریعے (کلائنٹس کے لیے)۔ عارضی ٹوکن PAM کے ذریعے میعاد ختم ہونے کے وقت، چینلز اور اجازتوں (read, write, manage) کی پابندیوں کے ساتھ جاری کیے جاتے ہیں۔
PubNub چینلز نامزد کردہ پیغام کے راستے ہیں۔ چینل کا نام 92 حروف تک کی ایک سٹرنگ ہے، جو لاطینی حروف، ہندسوں، ہائفنز اور انڈر اسکورز کو سپورٹ کرتی ہے۔ چینلز پہلی اشاعت یا سبسکرپشن پر متحرک طور پر بنائے جاتے ہیں۔ PubNub سبسکرائب کی درخواستوں میں * حرف کے ذریعے چینل پیٹرن کو سپورٹ کرتا ہے — یہ چینلز کے ایک گروپ (مثال کے طور پر، user-*) کو سبسکرائب کرنے کی اجازت دیتا ہے۔
Channel Groups اجتماعی سبسکرپشن کے لیے چینلز کو گروپ کرنے کا ایک طریقہ کار ہے۔ 50 انفرادی چینلز سبسکرائب کرنے کے بجائے، کلائنٹ ایک گروپ سبسکرائب کرتا ہے، اور اس گروپ میں شامل تمام چینلز کے پیغامات خود بخود کلائنٹ کو پہنچا دیے جاتے ہیں۔ Channel Groups گھونسلہ بنانے کی حمایت کرتا ہے، لیکن گہرائی 3 سطحوں سے زیادہ نہیں ہونی چاہیے۔
PubNub تکنیکی دستاویزات (2025) کے مطابق، فی چینل زیادہ سے زیادہ سبسکرائبرز کی تعداد 50,000 ہے۔ زیادہ بوجھ کے لیے، سابقے والے چینلز استعمال کرنے اور سامعین کو شارڈ کرنے کی سفارش کی جاتی ہے (مثال کے طور پر، chat-room-001, chat-room-002)۔ Channel Groups کو جغرافیائی یا موضوعاتی اصولوں کے مطابق بھی منظم کیا جا سکتا ہے۔
| پیرامیٹر | زیادہ سے زیادہ | نوٹ |
|---|---|---|
| چینل کے نام کی لمبائی | 92 حروف | لاطینی حروف، ہندسے، -, _ |
| فی چینل سبسکرائبرز | 50,000 | زیادہ — شارڈ کریں |
| Channel Groups | 2000 گروپ / کلید | فی گروپ 500 چینلز تک |
| ہسٹری (اسٹوریج) | لا محدود | اسٹوریج والیوم کے مطابق ادائیگی |
PubNub انٹیگریشن کے لیے رجسٹریشن، ایڈمن پینل میں ایپلیکیشن بنانا اور کیز کا سیٹ حاصل کرنا ضروری ہے۔ PubNub لائبریریاں JavaScript، Swift، Kotlin، Java، Dart (Flutter)، C#، Python، Ruby، Go اور بہت سی دوسری زبانوں کے لیے دستیاب ہیں۔ آئیے براؤزر اور Node.js کے لیے JavaScript میں ایک مثال دیکھتے ہیں۔
PubNub دستاویزات (2025) کے مطابق، pubnub-js لائبریری CommonJS اور ES Module دونوں درآمدات کو سپورٹ کرتی ہے۔ براؤزر کے لیے، npm بلڈ کے بعد webpack یا Vite کے ذریعے بنڈلنگ استعمال کرنے کی سفارش کی جاتی ہے۔
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' }
});
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 PubNub کی طرف پیغامات پروسیس کرنے کے لیے ایک سرور لیس پلیٹ فارم ہے۔ فنکشنز JavaScript میں لکھے جاتے ہیں اور ایک محفوظ الگ تھلگ ماحول (V8 isolate) میں عمل میں لائے جاتے ہیں۔ وہ سبسکرائبرز تک پہنچانے سے پہلے پیغامات کو تبدیل، فلٹر، بفر اور ری ڈائریکٹ کر سکتے ہیں۔
Stream Controller ایک بلٹ ان روٹنگ میکانزم ہے جو قواعد کی بنیاد پر پیغام کے بہاؤ کا انتظام کرتا ہے۔ قواعد طے کرتے ہیں کہ کون سے پیغامات پہنچائے جائیں، کون سے مسترد کیے جائیں اور کون سے پروسیسنگ کے لیے PubNub Functions کو بھیجے جائیں۔ Stream Controller پیغام کے مواد، چینل کی قسم یا میٹا ڈیٹا کے لحاظ سے مشروط روٹنگ کی حمایت کرتا ہے۔
PubNub بلاگ (2024) کے مطابق، PubNub Functions آپ کے اپنے سرور کے بجائے PubNub ایج نوڈس پر فلٹرنگ اور ٹرانسفارمیشن منطق کو آف لوڈ کرکے پیغام پروسیسنگ کے لیے سرور انفراسٹرکچر کے اخراجات کو 40-60% تک کم کرتی ہیں۔ فنکشنز کو HTTP درخواستوں، Key-Value اسٹوریج اور اسی جگہ میں دیگر فنکشنز تک رسائی حاصل ہے۔
موبائل پلیٹ فارمز کے لیے PubNub SDK iOS (Swift)، Android (Kotlin/Java)، Flutter (Dart) اور React Native (JavaScript) کے لیے دستیاب ہے۔ موبائل SDK خصوصیات کی مکمل رینج کو سپورٹ کرتے ہیں: pub/sub، موجودگی، ہسٹری، PAM اور PubNub Functions۔ پش اطلاعات کے لیے، PubNub ایک خاص موبائل پش گیٹ وے میکانزم کے ذریعے APNs اور FCM کے ساتھ مربوط ہوتا ہے۔
موبائل آلات کے لیے اصلاح میں انکولی ہارٹ بیٹ، بیچ پیغام پروسیسنگ اور پس منظر کے طریقوں کی حمایت شامل ہے۔ iOS کے لیے PubNub SDK ایپ کے کم سے کم ہونے پر کنکشن برقرار رکھنے کے لیے Background Task API استعمال کرتا ہے (30 سیکنڈ تک معیاری پس منظر کا وقت)۔ طویل پس منظر میں کام کرنے کے لیے پش اطلاعات کی ضرورت ہوتی ہے۔
Mobile Push Gateway PubNub کے ذریعے پش اطلاعات بھیجنے کا ایک طریقہ کار ہے۔ جب کسی چینل پر پیغام شائع کیا جاتا ہے، PubNub خود بخود تعین کرتا ہے کہ کون سے سبسکرائبرز آف لائن ہیں اور انہیں APNs (iOS) یا FCM (Android) کے ذریعے پش اطلاع بھیجتا ہے۔ ترتیب ایڈمن پینل میں ایک بار کی جاتی ہے — اس کے بعد، چینل کے تمام پیغامات خود بخود پش چینل میں ڈپلیکیٹ ہو جاتے ہیں۔ PubNub دستاویزات (2025) کے مطابق، گیٹ وے فی سیکنڈ 10,000 پش اطلاعات تک پروسیس کرتا ہے۔
اکثر پوچھے گئے سوالات
PubNub زیادہ SDKs (75+ پلیٹ فارمز)، بلٹ ان سرور لیس فنکشنز اور پیغام پروسیسنگ کے لیے Stream Controller پیش کرتا ہے۔ Pusher ترتیب دینے میں آسان ہے، لیکن PubNub روٹنگ اور ڈیٹا ٹرانسفارمیشن پر زیادہ کنٹرول دیتا ہے۔
PubNub ناکامی پر خودکار دوبارہ کوشش کے ساتھ at-least-once میکانزم استعمال کرتا ہے۔ ہر پیغام میں ڈیڈپلیکیشن کے لیے ایک منفرد timetoken ہوتا ہے۔ آف لائن سبسکرائبرز کے لیے پیغامات 30 سیکنڈ کے لیے بفر کیے جاتے ہیں۔
مفت منصوبہ میں 100 بیک وقت کنکشنز اور ماہانہ 1 ملین پیغامات شامل ہیں۔ ادائیگی کے منصوبے لامحدود پیغامات کے ساتھ 1000 بیک وقت کنکشنز کے لیے $49/ماہ سے شروع ہوتے ہیں۔
جی ہاں، PubNub تمام کنکشنز کے لیے TLS 1.3 اور PAM کے ذریعے کلیدی انتظام کے ساتھ اختیاری اینڈ ٹو اینڈ کلائنٹ سائیڈ خفیہ کاری (AES-256) کو سپورٹ کرتا ہے۔ انٹرپرائز گاہکوں کے لیے Cipher Key موڈ دستیاب ہے۔
PubNub JavaScript، Swift، Kotlin، Java، Dart، C#، Python، Ruby، Go، C++، PHP، Rust اور Objective-C سمیت 75+ پلیٹ فارمز کے لیے SDK فراہم کرتا ہے۔ یہ ریئل ٹائم سروسز کے درمیان سب سے بڑا ماحولیاتی نظام ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں