Real-time rabitə müasir mobil tətbiqlərin ayrılmaz hissəsidir. Grand View Research (2025) məlumatına görə, real-time texnologiyalar bazarı 2030-cu ilə qədər $52 milyarda çatacaq. WebRTC, WebSocket və Socket.IO real-time chatlar, zənglər və bildirişlərin qurulduğu üç sütundur. Mobil tətbiqlərdə real-time inkişaf ani ünsiyyət imkanları açır.
Əsas məqamlar
Real-time rabitə müştəri və server arasında minimal gecikmə ilə məlumat mübadiləsinə imkan verən texnologiyalardır. Əsas protokollar: WebSocket, SSE (Server-Sent Events), Long Polling və Short Polling. Hər birinin öz yeri var: WebSocket ikitərəfli ünsiyyət üçün, SSE bildirişlər üçün, Long Polling köhnə brauzerlər üçün fallback kimi. Mobil inkişafda real-time xüsusilə vacibdir: istifadəçilər mesajların və bildirişlərin dərhal çatdırılmasını gözləyirlər. Mobil inkişafda rabitə məhz bu protokollar üzərində qurulur.
WebSocket tam dupleks protokoldur (müştəri ↔ server). Əl sıxışmadan (HTTP Upgrade) sonra əlaqə açıq qalır. Başlıqlar minimaldır (2 bayt vs HTTP başlıqları). Chatlarda (WhatsApp, Telegram), oyunlarda, real-time ticarətdə istifadə olunur. SSE birtərəfli protokoldur (server → müştəri). Müştəri hadisələrə abunə olur və onları tək HTTP əlaqəsi üzərindən alır. SSE daha sadədir, miqyası asandır (sadə HTTP), Twitter lentləri, valyuta məzənnələri, push bildirişləri üçün idealdır.
Long Polling müştərinin HTTP sorğusu etdiyi və server məlumat göndərənə və ya vaxt aşımına qədər (30–60 saniyə) açıq saxladığı bir texnikadır. Məlumat aldıqdan sonra müştəri dərhal yeni sorğu açır. Long Polling WebSocket üçün fallbackdir. Short Polling — müştəri hər N saniyədən bir serveri sorğulayır. Ən sadə, lakin səmərəsiz (əksər sorğular boş cavab qaytarır).
P2P əlaqəsi qurmazdan əvvəl cihazlara Siqnal Serveri lazımdır — peer-lər arasında SDP təklifləri və ICE namizədlərini mübadilə etmək üçün aralıq server. Siqnalizasiya WebSocket, SSE və ya hər hansı digər protokol vasitəsilə həyata keçirilə bilər. Əlaqə qurulduqdan sonra siqnalizasiya media trafikinin ötürülməsində artıq iştirak etmir.
WebRTC (Web Real-Time Communication) P2P audio/video/məlumat üçün açıq texnologiyadır. Brauzerlərdə və yerli tətbiqlərdə (iOS, Android) işləyir. WebRTC daxildir: getUserMedia (kamera/mikrofon girişi), RTCPeerConnection (P2P əlaqəsi), RTCDataChannel (məlumat ötürülməsi). WebRTC mobil tətbiqlərdə real-time rabitəni təmin edir — mobil tətbiqlərdə rabitə əlavə plaginlər olmadan işləyir.
Peer A RTCPeerConnection və Offer SDP yaradır. Addım 2: Offer Siqnal Serveri vasitəsilə Peer B-yə göndərilir. Addım 3: Peer B Offer-i qəbul edir, Answer SDP yaradır və geri göndərir. Addım 4: Hər iki peer ICE namizədlərini (əlaqə üçün ünvanları) toplayır və Siqnalizasiya vasitəsilə mübadilə edir. Addım 5: ICE çərçivəsi ən yaxşı yolu seçir (P2P və ya TURN vasitəsilə). Əlaqədən sonra — media trafiki birbaşa axır.
SDP (Session Description Protocol) əlaqə parametrlərini (kodeklər, IP ünvanları, portlar) təsvir edən mətn protokoludur. ICE Candidate STUN/TURN-dan təklifdir: "Məni bu ünvanda tapmaq olar". Nə qədər çox namizəd varsa, P2P şansı bir o qədər yüksəkdir.
| Parametr | Socket.IO | Pusher | Ably | PubNub |
|---|---|---|---|---|
| Tip | Kitabxana (server ilə) | SaaS | SaaS | SaaS |
| Protokol | WebSocket + HTTP fallback | WebSocket | WebSocket + SSE | WebSocket |
| Pulsuz limit | Limitsiz (öz serveriniz) | 200k mesaj/gün | 50k mesaj/ay | 100 mesaj/san |
| Qlobal replikasiya | Xeyr (öz serveriniz) | Bəli | Bəli (7 region) | Bəli |
| Çatdırılma zəmanəti | ACK + vaxt aşımı | WebSocket (best effort) | Exactly-once | At-least-once |
| Populyarlıq | Çox yüksək | Yüksək | Artır | Yüksək |
Socket.IO startaplar üçün liderdir: serveri idarə edirsiniz, limit yoxdur. Pusher və Ably infrastrukturu idarə etmək istəmədiyiniz məhsullar üçündür. PubNub IoT və qlobal auditoriya üçündür. IT Sectr öz backend-i olan layihələr üçün Socket.IO, sürətli prototip üçün Pusher, etibarlılıq tələbləri olan müəssisələr üçün Ably tövsiyə edir.
Real-time platformalar WebSocket və SSE üçün hazır server infrastrukturu təmin edir. Onlar öz real-time serverinizi yazmaq, WebSocket əlaqələrini balanslaşdırmaq və miqyasını genişləndirmək ehtiyacını aradan qaldırır. Platforma seçimi büdcədən, etibarlılıq tələblərindən və serveri idarə etmək istəyindən asılıdır. Mobil inkişafda real-time üçün platformalar hazır müştəri SDK-ları və infrastruktur təklif edir.
Socket.IO Node.js və müştərilər (iOS, Android, veb) üçün kitabxanadır. WebSocket əsaslıdır, lakin fallback olaraq HTTP polling istifadə edir. Otaqları, ad fəzalarını, ACK təsdiqlərini dəstəkləyir. İnkişaf üçün — socket.io-client-java (Android) və socket.io-client-swift (iOS). Socket.IO-da mobil tətbiqlərdə rabitə avtomatik yenidən qoşulma sayəsində etibarlı şəkildə idarə olunur.
Pusher real-time SaaS platformasıdır. Sadə inteqrasiya: kanal yaradın və hadisələrə abunə olun. Pusher Channels bildirişlər üçün, Pusher Beams push bildirişləri üçün. Ably 7 məlumat mərkəzində qlobal replikasiya ilə müəssisə səviyyəsindədir. Exactly-once çatdırılmasına zəmanət verir. IoT üçün SSE, WebSocket, MQTT dəstəkləyir. Hər iki platforma server kodu yazmadan mobil inkişafda rabitə tapşırıqlarını həll edir.
STUN (Session Traversal Utilities for NAT) cihazın NAT arxasında xarici IP və portunu kəşf etməsinə kömək edən serverdir. Cihaz STUN sorğusu göndərir, server cavab verir: "203.0.113.5:45678 kimi görünürsünüz". STUN pulsuz istifadə olunur (Google STUN: stun.l.google.com:19302). Real-time infrastruktur kontekstində STUN P2P kanalı qurmaq üçün ilk addımdır.
TURN (Traversal Using Relays around NAT) P2P əlaqəsi mümkün olmadıqda (məsələn, hər iki cihaz simmetrik NAT arxasında) media trafikini ötürən rele serveridir. TURN server bant genişliyini istehlak edir, buna görə bahalıdır. WebRTC-də ICE çərçivəsi əvvəlcə P2P-ni sınayır, sonra son çarə olaraq TURN-u istifadə edir. Korporativ şəbəkələr vasitəsilə qoşularkən mobil tətbiqlərdə rabitə üçün inkişafda real-time TURN tələb edir.
ICE (Interactive Connectivity Establishment) bütün mümkün əlaqə yollarını (yerli IP, STUN vasitəsilə xarici IP, TURN releləri) toplayan və ən yaxşısını seçən çərçivədir. ICE Candidate hər bir mümkün yoldur. Nə qədər çox namizəd varsa, uğurlu P2P ehtimalı bir o qədər yüksəkdir.
P2P media trafiki üçün vasitəçi server olmadan iki cihaz arasında birbaşa əlaqədir. P2P gecikməni (< 100 ms) və server xərclərini azaldır. Çatışmazlıqlar: NAT-a qarşı zəif müdafiə, STUN/TURN ehtiyacı. WebRTC defolt olaraq P2P istifadə edir.
Peer-to-Peer (P2P) məlumatların birbaşa cihazlar arasında ötürüldüyü bir arxitekturadır. Real-time rabitə kontekstində P2P WebRTC-də gecikməni minimuma endirmək üçün istifadə olunur. ICE (Interactive Connectivity Establishment) P2P əlaqəsi üçün ən yaxşı yolu tapan mexanizmdir. İnkişaf üçün P2P mobil tətbiqlərdə real-time rabitəni təşkil etməyin optimal yoludur.
ICE üç növ ICE Candidate toplayır: 1) host (yerli IP), 2) srflx (STUN vasitəsilə), 3) relay (TURN vasitəsilə). Bütün namizədlər sıralanır və ICE prioritet sırası ilə hər birinə qoşulmağa çalışır. İlk uğurlu əlaqə istifadə olunur. P2P mümkün deyilsə, TURN istifadə olunur (lakin bahalıdır).
Tez-tez verilən suallar
WebSocket mobil tətbiqlərdə ikitərəfli rabitə (chat, oyunlar, birgə redaktə) üçündür. SSE serverdən müştəriyə birtərəfli bildirişlər (xəbər lenti, kotirovkalar) üçündür. WebSocket daha mürəkkəbdir, SSE daha sadə və miqyası asandır.
STUN cihazın xarici IP və portunu təyin edərək birbaşa P2P əlaqəsi qurmağa kömək edən serverdir. TURN P2P mümkün olmadıqda (simmetrik NAT arxasında) trafiki ötürən rele serveridir. TURN server bant genişliyini istehlak etdiyi üçün daha bahalıdır.
Socket.IO öz serveriniz varsa sadə chatlar və bildirişlər üçündür. Pusher server infrastrukturu olmadan sürətli başlanğıc üçündür. Ably qlobal replikasiya ilə müəssisə tələbləri üçündür. IT Sectr mobil inkişafda rabitə üçün ən çevik və pulsuz seçim olaraq Socket.IO-nu tövsiyə edir.
Siqnal Serveri iki cihazın WebRTC əlaqəsi qurmaq üçün SDP təklifləri və ICE namizədlərini mübadilə etdiyi aralıq serverdir. Mübadilədən sonra media trafiki siqnalizasiyanı keçərək birbaşa P2P axır.
Short Polling — müştəri sabit fasilələrlə davamlı olaraq serveri sorğulayır (məlumat olmasa belə). Long Polling — müştəri sorğu edir və serverin məlumat göndərməsini və ya vaxt aşımını gözləyir. Long Polling daha səmərəlidir, lakin yenə də WebSocket-dən pisdir.
Xülasə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.