Mobil geliştirmede gerçek zamanlı iletişim: nedir, hangi protokoller ve nasıl çalışır

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

Gerçek zamanlı iletişim, modern mobil uygulamaların vazgeçilmez bir parçasıdır. Grand View Research (2025)'e göre, gerçek zamanlı teknolojiler pazarı 2030 yılına kadar 52 milyar dolara ulaşacak. WebRTC, WebSocket ve Socket.IO, gerçek zamanlı sohbetlerin, aramaların ve bildirimlerin üzerine inşa edildiği üç temel direktir. Mobil uygulamalarda gerçek zamanlı geliştirme, anlık iletişim olanakları sunar.

Önemli noktalar

  • WebSocket — çift yönlü veri alışverişi için tam çift yönlü bir protokol. Sohbetlerde, oyunlarda, işbirlikçi düzenleyicilerde kullanılır.
  • SSE (Server-Sent Events) — sunucudan istemciye tek yönlü akış. WebSocket'ten daha basit, haber akışları ve kotasyonlar için uygundur.
  • WebRTC — eşler arası ses/görüntülü aramalar için bir teknoloji. STUN/TURN ve bir sinyal sunucusu gerektirir.
  • Gerçek zamanlı platformlar (Socket.IO, Pusher, Ably, PubNub) WebSocket entegrasyonunu basitleştirir ve hazır sunucu tarafı altyapısı sağlar.
  • STUN, P2P için bir cihazın harici IP'sini belirler. TURN, P2P mümkün değilse trafiği iletir. TURN daha pahalı ancak daha güvenilirdir.

Gerçek zamanlı iletişim: WebSocket, SSE ve Long Polling protokolleri

Gerçek zamanlı iletişim, istemci ve sunucu arasında minimum gecikmeyle veri alışverişine olanak tanıyan teknolojilerdir. Ana protokoller: WebSocket, SSE (Server-Sent Events), Long Polling ve Short Polling. Her birinin kendi alanı vardır: WebSocket çift yönlü iletişim için, SSE bildirimler için, Long Polling eski tarayıcılar için bir yedek olarak. Mobil geliştirmede gerçek zaman özellikle önemlidir: kullanıcılar mesajların ve bildirimlerin anında teslimini bekler. Mobil geliştirmede iletişim tam olarak bu protokoller üzerine inşa edilir.

WebSocket vs SSE

WebSocket tam çift yönlü bir protokoldür (istemci ↔ sunucu). El sıkışmadan (HTTP Upgrade) sonra bağlantı açık kalır. Başlıklar minimumdur (2 bayt vs HTTP başlıkları). Sohbetlerde (WhatsApp, Telegram), oyunlarda, gerçek zamanlı ticarette kullanılır. SSE tek yönlü bir protokoldür (sunucu → istemci). İstemci olaylara abone olur ve bunları tek bir HTTP bağlantısı üzerinden alır. SSE daha basittir, ölçeklenmesi daha kolaydır (düz HTTP), Twitter akışları, döviz kurları, push bildirimleri için idealdir.

Long Polling, istemcinin bir HTTP isteği yaptığı ve sunucu veri gönderene veya zaman aşımına uğrayana kadar (30–60 saniye) açık tuttuğu bir tekniktir. Veri aldıktan sonra istemci hemen yeni bir istek açar. Long Polling, WebSocket için bir yedektir. Short Polling — istemci her N saniyede bir sunucuyu yoklar. En basit ancak verimsiz (çoğu istek boş yanıt döndürür).

Sinyal Sunucusu

P2P bağlantısı kurulmadan önce cihazların bir Sinyal Sunucusuna ihtiyacı vardır — eşler arasında SDP tekliflerini ve ICE adaylarını değiş tokuş etmek için bir aracı sunucu. Sinyalizasyon, WebSocket, SSE veya herhangi bir başka protokol aracılığıyla uygulanabilir. Bağlantı kurulduktan sonra sinyalizasyon artık medya trafiği iletimine katılmaz.

WebRTC: ses ve görüntülü aramalarla gerçek zamanlı iletişim

WebRTC (Web Real-Time Communication), P2P ses/görüntü/veri için açık bir teknolojidir. Tarayıcılarda ve yerel uygulamalarda (iOS, Android) çalışır. WebRTC şunları içerir: getUserMedia (kamera/mikrofon erişimi), RTCPeerConnection (P2P bağlantısı), RTCDataChannel (veri aktarımı). WebRTC, mobil uygulamalarda gerçek zamanlı iletişimi mümkün kılar — mobil uygulamalardaki iletişim ek eklentiler olmadan çalışır.

WebRTC Akışı

Eş A bir RTCPeerConnection ve Offer SDP oluşturur. Adım 2: Offer, Sinyal Sunucusu aracılığıyla Eş B'ye gönderilir. Adım 3: Eş B, Offer'ı alır, bir Answer SDP oluşturur ve geri gönderir. Adım 4: Her iki eş de ICE adaylarını (bağlantı için adresler) toplar ve bunları Sinyalizasyon aracılığıyla değiş tokuş eder. Adım 5: ICE çerçevesi en iyi yolu seçer (P2P veya TURN aracılığıyla). Bağlantıdan sonra — medya trafiği doğrudan akar.

SDP (Session Description Protocol), bağlantı parametrelerini (codec'ler, IP adresleri, portlar) tanımlayan bir metin protokolüdür. ICE Candidate, STUN/TURN'dan gelen bir tekliftir: "Bu adreste bulunabilirim". Aday sayısı ne kadar fazla olursa, P2P şansı o kadar yüksek olur.

Parametre Socket.IO Pusher Ably PubNub
TürKütüphane (sunuculu)SaaSSaaSSaaS
ProtokolWebSocket + HTTP yedeğiWebSocketWebSocket + SSEWebSocket
Ücretsiz limitSınırsız (kendi sunucun)200k mesaj/gün50k mesaj/ay100 mesaj/sn
Küresel çoğaltmaHayır (kendi sunucun)EvetEvet (7 bölge)Evet
Teslimat garantileriACK + zaman aşımlarıWebSocket (en iyi çaba)Exactly-onceAt-least-once
PopülerlikÇok yüksekYüksekBüyüyorYüksek

Socket.IO startuplar için liderdir: sunucuyu kontrol edersiniz, limit yoktur. Pusher ve Ably, altyapı yönetmek istemediğiniz ürünler içindir. PubNub, IoT ve küresel kitleler içindir. IT Sectr, kendi backend'i olan projeler için Socket.IO'yu, hızlı prototipler için Pusher'ı, güvenilirlik gereksinimleri olan kurumsal firmalar için Ably'yi önerir.

Platformlar: Socket.IO, Pusher, Ably, PubNub

Gerçek zamanlı platformlar, WebSocket ve SSE için hazır sunucu altyapısı sağlar. Kendi gerçek zamanlı sunucunuzu yazma, WebSocket bağlantılarını dengeleme ve ölçekleme ihtiyacını ortadan kaldırır. Platform seçimi bütçeye, güvenilirlik gereksinimlerine ve sunucu yönetme isteğine bağlıdır. Mobil geliştirmede gerçek zaman için platformlar, hazır istemci SDK'ları ve altyapı sunar.

Socket.IO

Socket.IO, Node.js ve istemciler (iOS, Android, web) için bir kütüphanedir. WebSocket tabanlıdır ancak yedek olarak HTTP polling kullanır. Odaları, ad alanlarını, ACK onaylarını destekler. Geliştirme için — socket.io-client-java (Android) ve socket.io-client-swift (iOS). Socket.IO'daki mobil uygulamalarda iletişim, otomatik yeniden bağlanma sayesinde güvenilir bir şekilde işlenir.

Pusher ve Ably

Pusher gerçek zamanlı bir SaaS platformudur. Basit entegrasyon: bir kanal oluşturun ve olaylara abone olun. Pusher Channels bildirimler için, Pusher Beams push bildirimleri için. Ably, 7 veri merkezinde küresel çoğaltma ile kurumsal düzeydedir. Exactly-once teslimatı garanti eder. IoT için SSE, WebSocket, MQTT'yi destekler. Her iki platform da sunucu kodu yazmadan mobil geliştirmede iletişim görevlerini çözer.

Gerçek zamanlı altyapı: WebRTC'de STUN, TURN, Sinyalizasyon

STUN (Session Traversal Utilities for NAT), bir cihazın NAT arkasındaki harici IP'sini ve portunu keşfetmesine yardımcı olan bir sunucudur. Cihaz bir STUN isteği gönderir, sunucu yanıtlar: "203.0.113.5:45678 olarak görünüyorsunuz". STUN ücretsiz olarak kullanılır (Google STUN: stun.l.google.com:19302). Gerçek zamanlı altyapı bağlamında STUN, bir P2P kanalı kurmanın ilk adımıdır.

STUN vs TURN

TURN (Traversal Using Relays around NAT), P2P bağlantısı mümkün olmadığında (örneğin, her iki cihaz da simetrik NAT arkasındayken) medya trafiğini ileten bir röle sunucusudur. TURN sunucu bant genişliğini tükettiği için pahalıdır. WebRTC'de ICE çerçevesi önce P2P'yi dener, ardından son çare olarak TURN'u kullanır. Kurumsal ağlar üzerinden bağlanırken mobil uygulamalardaki iletişim için geliştirmede gerçek zaman, TURN gerektirir.

ICE (Interactive Connectivity Establishment), tüm olası bağlantı yollarını (yerel IP, STUN aracılığıyla harici IP, TURN röleleri) toplayan ve en iyisini seçen bir çerçevedir. ICE Candidate, her olası yoldur. Aday sayısı ne kadar fazla olursa, başarılı P2P olasılığı o kadar yüksek olur.

Eşler Arası

P2P, medya trafiği için aracı sunucu olmadan iki cihaz arasındaki doğrudan bağlantıdır. P2P, gecikmeyi (< 100 ms) ve sunucu maliyetlerini azaltır. Dezavantajları: NAT'a karşı zayıf koruma, STUN/TURN gerekliliği. WebRTC varsayılan olarak P2P kullanır.

P2P ve ICE

Eşler Arası (P2P), verilerin doğrudan cihazlar arasında aktarıldığı bir mimaridir. Gerçek zamanlı iletişim bağlamında P2P, WebRTC'de gecikmeyi en aza indirmek için kullanılır. ICE (Interactive Connectivity Establishment), bir P2P bağlantısı için en iyi yolu bulan mekanizmadır. Geliştirme için P2P, mobil uygulamalarda gerçek zamanlı iletişimi organize etmenin en uygun yoludur.

ICE nasıl çalışır

ICE üç tür ICE Candidate toplar: 1) host (yerel IP), 2) srflx (STUN aracılığıyla), 3) relay (TURN aracılığıyla). Tüm adaylar sıralanır ve ICE öncelik sırasına göre her biriyle bağlantı kurmayı dener. İlk başarılı bağlantı kullanılır. P2P mümkün değilse TURN kullanılır (ancak pahalıdır).

Sık sorulan sorular

WebSocket ne zaman, SSE ne zaman kullanılmalı?

WebSocket, mobil uygulamalarda çift yönlü iletişim (sohbet, oyunlar, işbirlikçi düzenleme) içindir. SSE, sunucudan istemciye tek yönlü bildirimler (haber akışı, kotasyonlar) içindir. WebSocket daha karmaşık, SSE daha basit ve ölçeklenmesi daha kolaydır.

WebRTC'de STUN ve TURN sunucuları nedir?

STUN, bir cihazın harici IP'sini ve portunu belirleyerek doğrudan P2P bağlantısı kurmaya yardımcı olan bir sunucudur. TURN, P2P mümkün olmadığında (simetrik NAT arkasında) trafiği ileten bir röle sunucusudur. TURN, sunucu bant genişliğini tükettiği için daha pahalıdır.

Bir startup için hangi gerçek zamanlı platform seçilmeli?

Socket.IO, kendi sunucunuz varsa basit sohbetler ve bildirimler içindir. Pusher, sunucu altyapısı olmadan hızlı başlangıç içindir. Ably, küresel çoğaltma ile kurumsal gereksinimler içindir. IT Sectr, mobil geliştirmede iletişim için en esnek ve ücretsiz seçenek olarak Socket.IO'yu önerir.

WebRTC'de Sinyal Sunucusu nedir?

Sinyal Sunucusu, iki cihazın bir WebRTC bağlantısı kurmak için SDP tekliflerini ve ICE adaylarını değiş tokuş ettiği bir aracı sunucudur. Değiş tokuştan sonra medya trafiği, sinyalizasyonu atlayarak doğrudan P2P olarak akar.

Short Polling ve Long Polling arasındaki fark nedir?

Short Polling — istemci, sabit aralıklarla sürekli olarak sunucuyu yoklar (veri olmasa bile). Long Polling — istemci bir istek yapar ve sunucunun veri göndermesini veya zaman aşımını bekler. Long Polling daha verimlidir ancak yine de WebSocket'ten daha kötüdür.

Özet

  • WebSocket, mobil uygulamalarda gerçek zamanlı iletişim için ana protokoldür. SSE, sunucudan tek yönlü bildirimler içindir.
  • WebRTC, P2P ses/görüntülü aramalar için bir teknolojidir. Sinyal Sunucusu, STUN ve isteğe bağlı olarak TURN gerektirir.
  • Socket.IO, kendi sunucusu olan startuplar için seçimdir. Pusher ve Ably, sunucu altyapısı olmayan SaaS çözümleridir.
  • STUN, harici IP'yi belirlemek için ücretsiz bir sunucudur. TURN, P2P'nin mümkün olmadığı durumlar için ücretli bir röledir.
  • ICE çerçevesi tüm bağlantı adaylarını toplar ve en iyi yolu seçer (P2P > TURN).
  • Long Polling ve Short Polling, mobil geliştirmede iletişim için eski teknolojilerdir. Yalnızca yedek olarak kullanın.
  • P2P bağlantısı kurmadan önce SDP ve ICE adaylarının değişimi için Sinyal Sunucusu gereklidir.

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ış