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 আরও SDK (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 75+ প্ল্যাটফর্মের জন্য SDK সরবরাহ করে, যার মধ্যে JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust এবং Objective-C অন্তর্ভুক্ত। এটি রিয়েল-টাইম পরিষেবাগুলির মধ্যে বৃহত্তম ইকোসিস্টেম।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন