Pusher — nedir, gerçek zamanlı platform ve uygulama entegrasyonu

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

Pusher: çift yönlü gerçek zamanlı iletişim için barındırılan hizmet, kanallar, olaylar ve webhook bildirimleri için altyapı sağlar. Geliştiriciyi kendi WebSocket sunucusunu dağıtma ihtiyacından kurtarır ve milyonlarca cihaza mesaj teslimatı sağlar. Resmi Pusher dokümantasyonuna (2025) göre, hizmet dünya çapında aylık 40 milyardan fazla mesaj işlemektedir.

Önemli Noktalar

  • Pusher — kendi sunucu yönetimi gerektirmeyen gerçek zamanlı mesajlar için bulut hizmeti.
  • Kanallar ve olaylar — mesaj yayını, public, private, presence türlerini destekleyen adlandırılmış kanallar aracılığıyla yapılır.
  • WebSocket taşıması — istemciler HTTP polling'e geri dönüşle WebSocket üzerinden bağlanır.
  • Webhook entegrasyonu — sunucu olayları HTTP kancaları aracılığıyla backend'inize teslim edilir.
  • Tüm platformlar için SDK — JavaScript, iOS, Android, React Native ve sunucu taraflı diller için hazır istemciler.

Pusher nedir?

Pusher, 2011 yılında kurulmuş çift yönlü gerçek zamanlı iletişim için bir bulut hizmetidir. Kendi WebSocket sunucunuzu yönetmek zorunda kalmadan gerçek zamanlı olarak mesaj göndermek ve almak için hazır altyapı sağlar. Pusher, sohbetler, canlı bildirimler, ortak düzenleme ve oyun liderlik tabloları oluşturmak için kullanılır.

Kendi sunucunuzu dağıtmayı ve bakımını gerektiren Socket.IO gibi kütüphanelerin aksine Pusher, SaaS (Hizmet Olarak Yazılım) modeliyle çalışır. Geliştirici kaydolur, anahtarları (app_id, key, secret) alır ve olayları yayınlamak için Pusher REST API'sini kullanır. Sunucu altyapısı tamamen Pusher platformu tarafından yönetilir.

Resmi Pusher bloguna (2025) göre, platform dünya çapında 250.000'den fazla aktif projeye hizmet vermektedir. Bilinen müşteriler arasında GitHub (gerçek zamanlı bildirimler), Trello (pano senkronizasyonu) ve Intercom (destek sohbeti) bulunmaktadır. Pusher, gecikmeyi en aza indirmek için ABD, Avrupa ve Asya'da veri merkezlerini destekler.

Pusher'ın gelişim tarihi

Pusher, 2011 yılında WebSocket için ilk barındırılan hizmetlerden biri olarak başlatıldı. 2014 yılında şirket, private ve presence kanallarını destekleyen mevcut mimari Pusher Channels'ı tanıttı. 2017'de sunucu tarafı olaylar için webhook desteği eklendi. 2022'de Pusher, mobil platformlar için push bildirim hizmeti Pusher Beams'i başlattı.

Pusher mimarisi, kendi kendine barındırılan çözümlerden farklıdır çünkü tüm abonelik işleme, bağlantı yönetimi ve olay yönlendirme Pusher Cloud tarafında gerçekleşir. Geliştirici yalnızca backend'i aracılığıyla private kanalların kimlik doğrulamasını yönetir.

Pusher nasıl çalışır

Pusher mimarisi, Yayıncı-Abone modeline dayanır. Sunucu uygulamaları Pusher REST API'si aracılığıyla olayları yayınlar ve istemci uygulamaları bunları kalıcı bir WebSocket bağlantısı üzerinden alır. Pusher, yayıncılar ve aboneler arasında aracı görevi görür.

Sunucu, Pusher API'sine bir POST isteğiyle bir olay gönderdiğinde, platform hedef kanalı belirler ve mesajı o kanala abone olan tüm istemcilere dağıtır. İstemciler, olayı zaten açık olan bir WebSocket bağlantısı üzerinden alır ve coğrafi konuma bağlı olarak 50–100 ms gecikme sağlar.

Her istemci, Pusher Client SDK aracılığıyla bir bağlantı kurar ve SDK otomatik olarak taşımayı seçer (WebSocket — öncelik, HTTP long-polling — geri dönüş). SDK, geliştirici müdahalesi olmadan yeniden bağlanma, veri serileştirme ve hata yönetimini yönetir. Pusher teknik dokümantasyonuna (2025) göre, ağ kesintisinden sonra yeniden bağlanma süresi 1 saniyeden azdır.

Pusher bileşenleri

Sistem üç bileşenden oluşur: Pusher Server API (olayları yayınlamak için REST uç noktaları), Pusher Client SDK (olaylara abone olmak için kütüphaneler) ve Pusher WebHook (bağlantı/bağlantı kesme olayları hakkında sunucu bildirimleri). Tüm bileşenler eşzamansız ve bağımsız çalışır.

Pusher kanal türleri

Pusher Channels, her biri farklı kullanım durumları için tasarlanmış üç tür kanalı destekler. Kanal türü, erişim seviyesini, kimlik doğrulama mekanizmasını ve mevcut yetenekleri belirler.

Kanal türüÖn ekKimlik doğrulamaKullanım
Publicchannel-GerekmezHerkese açık veriler: döviz kurları, hava durumu, haber akışı
Privateprivate-Sunucuda istek imzasıKişisel bildirimler, sohbetler, kullanıcı verileri
Presencepresence-İmza + kullanıcı bilgileriÇevrimiçi durum, oyun odaları, ortak düzenleme

Public kanallar kimlik doğrulaması olmadan tüm istemciler tarafından kullanılabilir ve yayın verileri için uygundur. Private kanallar, geliştiricinin sunucusu aracılığıyla kimlik doğrulaması gerektirir: istemci, socket_id ve channel_name ile backend'ine bir istek gönderir, sunucu isteği Pusher gizli anahtarıyla imzalar ve bir kimlik doğrulama token'ı döndürür. Presence kanallar ek olarak kullanıcı bilgilerini (user_id, user_info) iletir ve kimin çevrimiçi olduğunu izlemeye olanak tanır.

Pusher dokümantasyonuna (2025) göre, public ve private kanallar için kanal başına maksimum eşzamanlı bağlı istemci sayısı 10.000'dir. Presence kanalları için sınır, kanal başına 10.000 kullanıcı ve uygulama başına 100.000 kullanıcıya kadar destektir.

Pusher olayları ve tetikleyicileri

Pusher olay modeli, bir kanalda yayınlanan adlandırılmış olaylara dayanır. Her olayın bir adı (maksimum 200 karakter), JSON biçiminde verileri ve olayı başlatan kişiye yinelenen gönderimi önlemek için isteğe bağlı bir socket_id'si vardır.

Tetikleyiciler, bir kanalda bir olayı yayınlayan Pusher API'sine yapılan HTTP POST istekleridir. İstek biçimi: channel, name ve data içeren bir gövdeyle POST /apps/{app_id}/events. Pusher Server API, resmi kütüphaneler (PHP, Ruby, Python, Go, Java, Node.js) aracılığıyla herhangi bir sunucu ortamından tetikleyicileri destekler.

Pusher, toplu tetikleyicileri destekler — tek bir istekle birden çok kanala bir olay yayınlama. Bu, sıralı çağrılardan daha verimlidir ve atomik teslimatı garanti eder. Pusher performans testlerine (2024) göre, 100 kanala toplu tetikleyici 30–50 ms sürerken, sıralı çağrılar 2–5 saniye sürer.

Webhook entegrasyonu

Pusher WebHook, sunucunuzun altyapı olayları (istemci bağlantısı, bağlantı kesme, hata oluşumu) hakkında bildirim almasını sağlar. Webhook istekleri, doğrulama için HMAC-SHA256 ile imzalanır. Bu, günlük kaydı, analitik ve durum senkronizasyonu için kritiktir.

Pusher bir projeye nasıl entegre edilir

Pusher entegrasyonu iki bölümden oluşur: sunucu tarafı (olayları yayınlama) ve istemci tarafı (olaylara abone olma). Sunucu kısmı için Node.js ve istemci kısmı için JavaScript kullanan bir örneğe bakalım. Öncelikle, Pusher panosunda bir uygulama oluşturmanız ve kimlik bilgileri almanız gerekir.

Pusher dokümantasyonuna (2025) göre, temel plan (Sandbox) 100 eşzamanlı bağlantı ve günde 200.000 mesaj içerir — geliştirme ve test için yeterlidir. Üretim planları, 1000 bağlantı için aylık 49$'dan başlar.

Sunucu kodu: bir olay yayınlama

js
const Pusher = require('pusher');

const pusher = new Pusher({
    appId: 'YOUR_APP_ID',
    key: 'YOUR_KEY',
    secret: 'YOUR_SECRET',
    cluster: 'eu',
    useTLS: true
});

pusher.trigger('my-channel', 'my-event', {
    message: 'Hello from server',
    timestamp: Date.now()
}).then(() => {
    console.log('Olay yayınlandı');
}).catch(console.error);

İstemci kodu: olaylara abone olma

js
import Pusher from 'pusher-js';

const pusher = new Pusher('YOUR_KEY', {
    cluster: 'eu',
    forceTLS: true
});

const channel = pusher.subscribe('my-channel');

channel.bind('my-event', (data) => {
    console.log('Olay alındı:', data);
    displayNotification(data.message);
});

Mobil uygulamalarda Pusher

Pusher, iOS (Swift) ve Android (Java/Kotlin) için SDK'lar sağlar ve bunlar JavaScript istemcisinin işlevselliğini tamamen kopyalar. Mobil SDK'lar aynı kanal türlerini, kimlik doğrulama mekanizmasını ve olay modelini destekler. React Native için, JavaScript köprüsü aracılığıyla çalışan pusher-js paketi mevcuttur.

Mobil cihazlarda, Pusher SDK, üstel geri alma ile yeniden bağlanma mekanizması kullanarak Wi-Fi ve mobil ağlar arasında geçişi otomatik olarak yönetir. Bu, iOS'un arka planda çalışma sırasında WebSocket bağlantılarını zorla kapatabildiği iOS uygulamaları için özellikle önemlidir.

Pusher teknik bloguna (2024) göre, aktif olay olmadığında bir Pusher bağlantısının ortalama trafik tüketimi dakikada 1–2 KB'dir. Bu, 30 saniyelik aralıklarla optimize edilmiş bir kalp atışı protokolü ile elde edilir. Orta büyüklükteki bir uygulama, pil ömrünü önemli ölçüde etkilemeden 1000'e kadar eşzamanlı Pusher bağlantısını destekleyebilir.

Push bildirimleri için Pusher Beams

Pusher Beams, APNs (iOS) ve FCM (Android) aracılığıyla mobil cihazlara push bildirimleri göndermek için ek bir hizmettir. Beams, Pusher Channels ile entegre olur: bir kanaldaki olay, istemci çevrimdışıysa otomatik olarak bir push bildirimi tetikleyebilir. Bu, uygulama kapalıyken mesaj teslimatı sorununu çözer.

Pusher güvenliği ve kimlik doğrulama

Pusher güvenliği birkaç düzeyde uygulanır. Pusher API'sine yapılan her istek, app_secret kullanılarak HMAC-SHA256 ile imzalanır. Bu, yalnızca yetkili bir sunucunun olayları yayınlayabilmesini sağlar. İstemci SDK'ları, uygulama tanımlaması için app_key kullanır, ancak private ve presence kanallarına erişmek için ek kimlik doğrulama gerekir.

Private kanal kimlik doğrulaması üç adımda gerçekleşir: istemci pusher.subscribe('private-channel') çağırır, Pusher Client SDK backend uç noktanıza (/pusher/auth) bir HTTP isteği gönderir, sunucu kullanıcının izinlerini kontrol eder ve gizli anahtarla imzalanmış bir kimlik doğrulama token'ı döndürür. Pusher imzayı doğrular ve aboneliğe izin verir.

Tüm istekler için TLS bağlantıları kullanılması önerilir (SDK'da useTLS: true ayarı). Pusher ayrıca REST API'sine yapılan sunucu istekleri için IP adresi erişim kısıtlamalarını da destekler. Kurumsal planlar için VPC (Sanal Özel Bulut) ve izole altyapılı özel kümeler desteği mevcuttur.

Sıkça sorulan sorular

Pusher, Socket.IO'dan nasıl farklıdır?

Pusher, sunucu yönetimi gerektirmeyen barındırılan bir hizmettir (SaaS). Socket.IO, kendiniz dağıtmanız gereken bir kütüphanedir. Pusher'ın kurulumu daha kolaydır ancak ölçeklenirken daha pahalıdır, Socket.IO DevOps çalışması gerektirir ancak büyük hacimde daha ucuzdur.

Pusher'ın maliyeti nedir?

Ücretsiz Sandbox planı 100 bağlantı ve günde 200.000 mesaj içerir. Üretim planları, aylık 49$'dan (1000 bağlantı, sınırsız mesaj) özel koşullarla kurumsala kadar başlar.

Pusher mesaj teslimatını nasıl sağlar?

Pusher, HTTP long-polling'e otomatik geri dönüşle WebSocket kullanır. Kritik mesajlar için, Pusher tarafında en az bir kez (at-least-once) teslimat garantisi ile bir kuyruk mevcuttur.

Pusher Rusya'da kullanılabilir mi?

Evet, Pusher'a Rusya'dan Avrupa kümesi (eu) aracılığıyla erişilebilir. Avrupa veri merkezleri için gecikme 50–100 ms'dir. Veri yerelleştirme gereksinimleri olan projeler için alternatiflerin değerlendirilmesi önerilir.

Pusher'ın alternatifleri nelerdir?

Ana rakipler Ably (benzer işlevsellik, daha esnek fiyatlandırma), PubNub (küresel teslimat ağı), Socket.IO (kendi kendine barındırılan) ve Firebase Realtime Database (Google ekosistemi)'dir.

Özet

  • Pusher — kendi sunucu altyapınızı yönetmeyi gerektirmeyen gerçek zamanlı mesajlar için bir bulut SaaS hizmetidir.
  • Üç kanal türü — public (kimlik doğrulama yok), private (imzalı) ve presence (kullanıcı takibi ile) — tüm senaryoları kapsar.
  • Olay modeli, REST API aracılığıyla yayınlanan JSON yüküne sahip adlandırılmış olaylara dayanır.
  • Mobil SDK'lar (iOS ve Android) otomatik yeniden bağlanma ve optimize edilmiş trafik tüketimini destekler.
  • Güvenlik, HMAC istek imzası, TLS şifrelemesi ve backend aracılığıyla private kanal kimlik doğrulaması ile sağlanır.
  • Pusher Beams, APNs ve FCM aracılığıyla çevrimdışı teslimat için push bildirimleri ekler.
  • Hızlı başlangıçlı küçük projeler için Pusher idealdir; çok sayıda bağlantı için kendi kendine barındırılan Socket.IO daha uygun maliyetlidir.

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