Mobile App Wiki

Mobile App Wiki

mobileapp.wiki

Ana Sayfa

Kategoriler

mobileapp.wiki

Mobile App Wiki

Mobil uygulama geliştirme bilgi tabanı

GizlilikAna SayfaSitemapRSS
© 2026 mobileapp.wiki
Ana Sayfa/Altyapı/WebSocket & Real-time
Altyapı3 dk okuma

WebSocket & Real-time

Gerçek zamanlı iletişim teknolojileri rehberi. WebSocket, SSE ve MQTT karşılaştırması, Socket.io ve Supabase Realtime entegrasyon detayları.

websocketreal-timegerçek zamanlısocket.iossemqttchatcanlısupabasefirebase

İçindekiler

Real-time Nedir?TeknolojilerWebSocketServer-Sent Events (SSE)Long PollingMQTTKullanım AlanlarıPlatformlar ve KütüphanelerSocket.ioAblyPusherFirebase Realtime / FirestoreSupabase RealtimeMobil Dikkat NoktalarıBağlantı YönetimiBataryaOffline HandlingBest Practicesİlgili Konular

Real-time Nedir?

Sunucu ve istemci arasında anlık, çift yönlü iletişim. Mesajlaşma, canlı bildirimler, oyun, finans verileri gibi anlık güncelleme gerektiren senaryolar. 2026 itibarıyla real-time özellikler, kullanıcı beklentisinin standart parçası haline gelmiştir (chat, canlı bildirim, collaborative editing).

Teknolojiler

WebSocket

  • Tam çift yönlü (full-duplex) bağlantı
  • Tek TCP bağlantısı üzerinden sürekli iletişim
  • Düşük latency (HTTP overhead yok)
  • En yaygın real-time çözümü
  • RFC 6455 standardı

Server-Sent Events (SSE)

  • Tek yönlü (sunucu → istemci)
  • HTTP üzerinden çalışır (proxy/firewall dostu)
  • Otomatik reconnect (tarayıcı tarafından)
  • Basit implementasyon
  • AI streaming yanıtlar için ideal (ChatGPT benzeri)
  • Sadece sunucudan veri akışı yeterliyse

Long Polling

  • HTTP isteği sunucuda bekler, veri olduğunda yanıt döner
  • WebSocket desteklenmediğinde fallback
  • Daha yüksek overhead (her yanıtta yeni bağlantı)
  • Eski tarayıcılar/ortamlar için son çare

MQTT

  • IoT ve mobil için hafif protokol
  • Publish/subscribe modeli
  • Düşük bant genişliği (header çok küçük)
  • Bağlantı kopmaları için "last will" mekanizması
  • QoS seviyeleri (0: at most once, 1: at least once, 2: exactly once)

Kullanım Alanları

SenaryoÖnerilen Teknoloji
Chat/mesajlaşmaWebSocket
Canlı bildirimlerWebSocket veya SSE
Canlı konum takibiWebSocket
Finans/kripto verileriWebSocket
Feed güncellemeSSE veya polling
IoT sensör verisiMQTT
Multiplayer oyunWebSocket
AI streaming yanıtSSE
Collaborative editingWebSocket (CRDT ile)

Platformlar ve Kütüphaneler

Socket.io

  • WebSocket + fallback (long polling)
  • Room ve namespace desteği (grup mesajlaşma)
  • Otomatik reconnect
  • React Native uyumlu (socket.io-client)
  • Binary data desteği

Ably

  • Managed real-time platform
  • Global dağıtım, %99.999 uptime SLA
  • Presence (kim online?)
  • Message history ve persistence

Pusher

  • Managed WebSocket hizmeti
  • Channel bazlı mesajlaşma
  • Kolay entegrasyon, geniş SDK desteği
  • Pusher Beams ile push notification

Firebase Realtime / Firestore

  • Gerçek zamanlı veri senkronizasyonu
  • Offline destek (otomatik senkronizasyon)
  • Otomatik reconnect
  • Security Rules ile güvenlik

Supabase Realtime

  • PostgreSQL changes dinleme (CDC - Change Data Capture)
  • Presence ve broadcast
  • Channel bazlı dinleme
  • RLS (Row Level Security) ile güvenlik

Mobil Dikkat Noktaları

Bağlantı Yönetimi

  • Reconnect stratejisi (exponential backoff: 1s → 2s → 4s → max 30s)
  • Arka plana geçince bağlantı durumu (iOS arka planda WebSocket kapatabilir)
  • Ağ değişikliği (WiFi ↔ mobil veri - NetInfo ile izleme)
  • Bağlantı kalitesi tespiti (ping/pong heartbeat)

Batarya

  • Sürekli bağlantı batarya tüketir
  • Heartbeat aralığını optimize et (30-60 saniye)
  • Gerekmedikçe bağlantıyı kapat
  • Background mode sınırlamaları (iOS özellikle katı - BackgroundTasks framework)

Offline Handling

  • Bağlantı koptuğunda mesajları kuyruğa al
  • Reconnect olduğunda senkronize et (last event ID ile)
  • Kullanıcıya bağlantı durumunu göster (yeşil/kırmızı gösterge)
  • Conflict resolution stratejisi belirle (last write wins, merge, CRDT)

Best Practices

  • WebSocket'i sadece gerçek real-time gerektiğinde kullan
  • Polling yeterliyse polling kullan (daha basit, daha az batarya)
  • Reconnect ve error handling kritik (kullanıcıya bilgi ver)
  • Bağlantı durumu UI'da göster
  • Arka planda bağlantıyı yönet (kapat veya minimize et)
  • Message queue ile mesaj kaybını önle
  • Rate limiting uygula (spam koruması)
  • Compression kullan (permessage-deflate extension)

Real-time "cool" ama her uygulama için gerekli değil. 5 saniyelik gecikme kabul edilebilirse polling yeterli. Gerçekten anlık iletişim gerekiyorsa WebSocket tercih edin.

İlgili Konular

  • Firebase
  • A/B Testing (Uygulama Ici)
  • Supabase

Bu makaleyi nasıl buldunuz?

Paylaş

← Önceki

Firebase

Sonraki →

Supabase

İlgili Makaleler

Firebase

Google Firebase mobil uygulama platformu rehberi. Authentication, Firestore, Cloud Functions, Crashlytics, Analytics, Remote Config ve FCM detayları.

Supabase

Açık kaynaklı Firebase alternatifi Supabase rehberi. PostgreSQL, Row Level Security, Edge Functions, realtime subscriptions ve mobil entegrasyon.

Analytics Platformları

Mobil uygulama analitik platformları karşılaştırma rehberi. Firebase Analytics, Mixpanel, Amplitude ve PostHog ile event ve retention ölçümü.

Remote Config & Feature Flags

Remote Config ve Feature Flags yönetim rehberi. Firebase Remote Config, LaunchDarkly ve Statsig ile gradual rollout ve kill switch stratejileri.

CDN & Asset Delivery

CDN ve asset delivery optimizasyon rehberi. Cloudflare, AWS CloudFront ve Bunny CDN karşılaştırması, image optimization ve cache stratejileri detayları.