PubNub — nedir, gerçek zamanlı SDK ve uygulamalarda nasıl çalışır

Yazar: IT Sectr Yayınlanma: 2026-06-02 Okuma süresi: 8 dk

PubNub, minimum gecikmeyle WebSocket üzerinden mesaj yayınlama ve abone olma için altyapı sağlayan küresel bir gerçek zamanlı mesajlaşma ağıdır. Yüksek yük ve dengesiz bağlantılar altında güvenilir veri teslimatı gerektiren uygulamalar için tasarlanmıştır. Resmi PubNub dokümantasyonuna (2025) göre, platform dünya çapında 70.000'den fazla uygulama için aylık 1 trilyon mesajdan fazlasını işler.

Önemli Noktalar

  • PubNub, 15+ veri merkezi ve garantili teslimat ile gerçek zamanlı mesajlar için küresel bir ağdır.
  • Anahtarlarla Pub/Sub — erişim hakları ayrımı ile publish/subscribe anahtarları aracılığıyla yayınlama ve abonelik.
  • Stream Controller — filtreleme, dönüştürme ve arabelleğe alma desteği ile mesaj akışı yönetimi.
  • Presence — zaman aşımı algılama ile kanal katılımcılarının çevrimiçi durumunu izleme.
  • 75+ platform için SDK — gerçek zamanlı hizmetler arasında en büyük istemci kütüphanesi ekosistemi.

PubNub nedir?

PubNub, 2010 yılında kurulmuş küresel bir gerçek zamanlı veri ağıdır. Mesajları yayınlama ve abone olma için API sağlar, ayrıca ek hizmetler sunar: geçmiş depolama, varlık yönetimi, sunucusuz işlevler (PubNub Functions) ve veri akışı analitiği.

PubNub'un mimarisi, 15'ten fazla coğrafi bölgede bulunan dağıtılmış varlık noktaları (POP) ağına dayanır. Her nokta, yayıncılar ve aboneler arasında minimum gecikmeyle mesajları yönlendiren önbellekleme brokerları içerir. PubNub tek bir merkezi broker kullanmaz — her bölge bağımsız olarak çalışır ve küresel ağ üzerinden senkronize olur.

Resmi PubNub web sitesine (2025) göre, platform 200'den fazla ülkede 70.000'den fazla uygulamaya hizmet vermektedir. Önemli müşteriler arasında Logitech (IoT cihaz yönetimi), GoPro (gerçek zamanlı video akışı), eBay (açık artırma senkronizasyonu) ve Snapchat (sohbet ve bildirimler) bulunmaktadır.

PubNub'un temel ilkeleri

PubNub üç ilke üzerine inşa edilmiştir: hız (tek bir bölge içinde 95. yüzdelik dilimde 10 ms'nin altında gecikme), güvenilirlik (otomatik yeniden deneme ile at-least-once teslimat garantisi) ve ölçeklenebilirlik (kanal sayısında sınır olmaksızın yatay genişleme). Platform mesajları uzun süreli depolamada saklamaz — geçmiş, ayrı olarak bağlanan Storage & Playback hizmeti aracılığıyla kullanılabilir.

PubNub nasıl çalışır

PubNub'un çalışma modeli klasik yayınla-abone ol desenine dayanır. Yayıncı istemci, publish anahtarıyla PubNub REST API üzerinden kanalı belirterek bir mesaj gönderir. PubNub, mesajı etkin WebSocket bağlantıları aracılığıyla o kanalın tüm abonelerine iletir. Aboneler, PubNub SDK'sına kayıtlı bir geri çağırma işleyicisi aracılığıyla mesajı alır.

PubNub'un taşıma katmanı, birincil protokol olarak WebSocket kullanır ve kısıtlamalı ortamlar için HTTP long-polling'e geri döner. SDK bağlantıyı otomatik olarak yönetir: kurar, heartbeat'i sürdürür (ağa bağlı olarak her 15-60 saniyede bir) ve kesinti durumunda yeniden bağlanır.

PubNub'daki her mesaj meta veri içerir: gönderen UUID'si, zaman damgası, sıra numarası (timetoken) ve bayraklar (store, replicate, eatAfterRead). Timetoken, bir kanal içindeki mesajların küresel sırasını garanti eden zaman tabanlı benzersiz bir PubNub tanımlayıcısıdır. PubNub dokümantasyonuna (2025) göre, timetoken'ın çözünürlüğü 10 nanosaniyedir.

Mesaj akışı

Bir istemci mesaj yayınladığında, Stream Controller — PubNub'un yönlendirme modülü — aracılığıyla geçer. Stream Controller erişim haklarını (PAM) kontrol eder, dönüştürme kurallarını (PubNub Functions) uygular, hedef bölgeleri belirler ve mesajı tüm abonelere gönderir. Bir abone çevrimdışıysa, mesaj bağlantı kurtarma beklerken 30 saniye (varsayılan) boyunca arabelleğe alınır.

PubNub anahtarları: publish, subscribe, secret

PubNub'un anahtar sistemi erişim haklarını üç seviyeye ayırır: publish anahtarı (yalnızca yayınlama), subscribe anahtarı (yalnızca abonelik) ve secret anahtarı (yönetim). Her uygulama kayıt sırasında üç anahtarlık bir set alır, ancak secret anahtarı asla istemciye iletilmez — yalnızca sunucu tarafında kullanılır.

Publish anahtarı kanallara mesaj göndermek için kullanılır. Subscribe anahtarı kanallara abone olmak ve mesaj almak için kullanılır. Secret anahtarı PubNub Access Manager (PAM) aracılığıyla erişim yönetimi, geçici izleyici tokenları oluşturma ve anahtar yönetimi için kullanılır. Secret anahtarı sunucuda güvende tutulur ve asla istemcilere açıklanmaz.

PubNub birkaç kimlik doğrulama modunu destekler: IP adresine göre (sunucular için), secret anahtarına göre (yönetici işlemleri için), geçici tokenlara göre (istemciler için). Geçici tokenlar PAM aracılığıyla süre sonu, kanal ve izinler (read, write, manage) kısıtlamalarıyla verilir.

PubNub kanalları

PubNub kanalları adlandırılmış mesaj yollarıdır. Bir kanal adı, Latin harflerini, rakamları, tireleri ve alt çizgileri destekleyen en fazla 92 karakterlik bir dizedir. Kanallar ilk yayınlama veya abonelikte dinamik olarak oluşturulur. PubNub, abonelik isteklerinde * karakteri aracılığıyla kanal desenlerini destekler — bu, bir kanal grubuna (örneğin, user-*) abone olmayı sağlar.

Channel Groups, toplu abonelik için kanalları gruplama mekanizmasıdır. 50 ayrı kanala abone olmak yerine, istemci bir gruba abone olur ve gruptaki tüm kanallardan gelen mesajlar otomatik olarak istemciye iletilir. Channel Groups iç içe yerleştirmeyi destekler, ancak derinlik 3 seviyeyi geçmemelidir.

PubNub teknik dokümantasyonuna (2025) göre, kanal başına maksimum abone sayısı 50.000'dir. Daha yüksek yükler için, önekli kanallar kullanmanız ve hedef kitlenizi parçalamanız önerilir (örneğin, chat-room-001, chat-room-002). Channel Groups ayrıca coğrafi veya tematik ilkelere göre de düzenlenebilir.

ParametreMaksimumNot
Kanal adı uzunluğu92 karakterLatin harfleri, rakamlar, -, _
Kanal başına abone50.000Daha yüksek — parçala
Channel Groups2000 grup / anahtarGrup başına 500 kanala kadar
Geçmiş (depolama)SınırsızDepolama hacmine göre ödeme

Bir projede PubNub nasıl kullanılır

PubNub entegrasyonu kayıt, yönetim panelinde bir uygulama oluşturma ve bir anahtar seti almayı gerektirir. PubNub kütüphaneleri JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go ve diğer birçok dil için mevcuttur. Tarayıcı ve Node.js için JavaScript'te bir örneğe bakalım.

PubNub dokümantasyonuna (2025) göre, pubnub-js kütüphanesi hem CommonJS hem de ES Module içe aktarmayı destekler. Tarayıcı için, npm yapısının ardından webpack veya Vite aracılığıyla paketleme kullanılması önerilir.

Bir kanala abone olma

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('Yeni mesaj:', event.message);
    },
    presence: (event) => {
        console.log('Varlık:', event.uuid, event.action);
    }
});

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

Mesaj geçmişini alma

js
pubnub.fetchMessages(
    { channels: ['chat-general'], count: 50 },
    (status, response) => {
        if (status.error) {
            console.error('Geçmiş alınırken hata', status);
            return;
        }
        const messages = response.channels['chat-general'];
        messages.forEach((msg) => {
            console.log(msg.message, msg.timetoken);
        });
    }
);

PubNub Functions ve Stream Controller

PubNub Functions, PubNub tarafında mesajları işlemek için sunucusuz bir platformdur. Fonksiyonlar JavaScript ile yazılır ve güvenli izole bir ortamda (V8 isolate) yürütülür. Abonelere teslim edilmeden önce mesajları dönüştürebilir, filtreleyebilir, arabelleğe alabilir ve yönlendirebilir.

Stream Controller, kurallara dayalı olarak mesaj akışını yöneten yerleşik bir yönlendirme mekanizmasıdır. Kurallar, hangi mesajların teslim edileceğini, hangilerinin atılacağını ve hangilerinin işlenmek üzere PubNub Functions'a gönderileceğini belirler. Stream Controller, mesaj içeriğine, kanal türüne veya meta verilere göre koşullu yönlendirmeyi destekler.

PubNub bloguna (2024) göre, PubNub Functions, filtreleme ve dönüştürme mantığını kendi sunucunuz yerine PubNub uç düğümlerinde çalıştırarak mesaj işleme için sunucu altyapı maliyetlerini %40-60 oranında azaltır. Fonksiyonlar HTTP isteklerine, Key-Value depolamaya ve aynı alandaki diğer fonksiyonlara erişebilir.

Mobil uygulamalarda PubNub

Mobil platformlar için PubNub SDK, iOS (Swift), Android (Kotlin/Java), Flutter (Dart) ve React Native (JavaScript) için mevcuttur. Mobil SDK'lar tüm özellik yelpazesini destekler: pub/sub, varlık, geçmiş, PAM ve PubNub Functions. Push bildirimleri için PubNub, özel bir mobil push ağ geçidi mekanizması aracılığıyla APNs ve FCM ile entegre olur.

Mobil cihazlar için optimizasyon, uyarlanabilir heartbeat, toplu mesaj işleme ve arka plan modları desteğini içerir. iOS için PubNub SDK, uygulama simge durumuna küçültüldüğünde bağlantıyı sürdürmek için Background Task API'sini kullanır (standart arka plan süresinin 30 saniyesine kadar). Daha uzun arka plan çalışması için push bildirimleri gerekir.

Mobile Push Gateway, PubNub aracılığıyla push bildirimleri gönderme mekanizmasıdır. Bir kanala mesaj yayınlandığında, PubNub otomatik olarak hangi abonelerin çevrimdışı olduğunu belirler ve onlara APNs (iOS) veya FCM (Android) aracılığıyla bir push bildirimi gönderir. Yapılandırma yönetim panelinde bir kez yapılır — bundan sonra kanaldaki tüm mesajlar otomatik olarak push kanalına kopyalanır. PubNub dokümantasyonuna (2025) göre, ağ geçidi saniyede 10.000'e kadar push bildirimi işler.

Sıkça Sorulan Sorular

PubNub, Pusher'dan nasıl farklıdır?

PubNub, daha fazla SDK (75'ten fazla platform), yerleşik sunucusuz işlevler ve mesaj işleme için Stream Controller sunar. Pusher kurulumu daha kolaydır, ancak PubNub yönlendirme ve veri dönüştürme üzerinde daha fazla kontrol sağlar.

PubNub mesaj teslimatını nasıl garanti eder?

PubNub, hata durumunda otomatik yeniden deneme ile at-least-once mekanizması kullanır. Her mesajın yinelenenleri kaldırmak için benzersiz bir timetoken'ı vardır. Çevrimdışı aboneler için mesajlar 30 saniye boyunca arabelleğe alınır.

PubNub'un maliyeti nedir?

Ücretsiz plan, 100 eşzamanlı bağlantı ve ayda 1 milyon mesaj içerir. Ücretli planlar, sınırsız mesajla 1.000 eşzamanlı bağlantı için aylık $49'dan başlar.

PubNub şifrelemeyi destekliyor mu?

Evet, PubNub tüm bağlantılar için TLS 1.3'ü ve PAM aracılığıyla anahtar yönetimi ile isteğe bağlı uçtan uca istemci tarafı şifrelemeyi (AES-256) destekler. Kurumsal müşteriler için Cipher Key modu mevcuttur.

PubNub SDK hangi dilleri destekler?

PubNub, JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust ve Objective-C dahil olmak üzere 75'ten fazla platform için SDK sağlar. Bu, gerçek zamanlı hizmetler arasındaki en büyük ekosistemdir.

Özet

  • PubNub, 15'ten fazla veri merkezi ve 75'ten fazla platform desteği ile küresel bir gerçek zamanlı mesajlaşma ağıdır.
  • Anahtar sistemi publish/subscribe/secret + PAM, esnek erişim hakkı yönetimi sağlar.
  • PubNub Functions, kendi sunucu altyapınız olmadan sunucusuz mesaj işlemeye olanak tanır.
  • Stream Controller, ağ uç düğümlerinde mesajların yönlendirilmesini, filtrelenmesini ve dönüştürülmesini yönetir.
  • Mobile Push Gateway, çevrimdışı aboneler için APNs ve FCM aracılığıyla otomatik olarak push bildirimleri gönderir.
  • Kanallar 50.000 aboneye kadar destekler ve Channel Groups birden çok kanalın yönetimini basitleştirir.
  • Geniş platform desteği ve yerleşik mesaj işleme gerektiren projeler için PubNub'u seçin; daha basit senaryolar için Pusher uygundur.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun