React Native ve Laravel ile yapılan uygulamalar için gerçek zamanlı güncellemeler artık çok daha kolay. Mobil platformda gerçek zamanlı güncellemeleri sağlamak, geçmişte sorunlu ya da neredeyse imkansızdı. Ancak react-native-reverb paketi ile Laravel’in Reverb WebSocket sunucusu ile React Native istemcisi arasında uyumlu bir köprü kuruluyor. Bu, vendor lock-in olmadan, gerçek bir self-hosting çözümü sunuyor ve Laravel Echo ile tam API uyumluluğu sağlıyor. Aşağıda, kurulum adımları, çalışan bir örnek ve geliştirme iş akışında nelerin değişeceği yer alıyor.
<h2>
<a name="what-is-reactnativereverb-and-why-does-it-matter" href="#what-is-reactnativereverb-and-why-does-it-matter"></a>
react-native-reverb nedir ve neden önemlidir?
</h2>
<p>2024'ten önce, mobil uygulamalarda "Laravel gerçek zamanlı" deneyimi hayal gücüne dayanıyordu. Pusher’in web SDK'sı React Native üzerinde yerel olarak çalışmıyordu ve resmi mobil SDK, Pusher'ın barındırdığı sunuculara bağlıydı. Laravel Reverb ise self-hosting bir WebSocket sunucusu olarak piyasaya sürüldü, ancak React Native ekipleri bunun dışında bırakıldı. react-native-reverb, hem iOS hem de Android için Reverb’in Pusher protokolü üzerinde çalışan yerel bir TurboModule istemcisi ile bu boşluğu kapatıyor.</p>
<ul>
<li><strong>Kendi Reverb sunucunuza bağlanır, 3. parti bir buluta değil.</strong></li>
<li><strong>Özel kanal kimlik doğrulama ve olay ayrıştırmayı kutudan çıkarır.</strong></li>
<li><strong>Promise tabanlı API — eski köprü veya kırılgan sarıcılar yok.</strong></li>
<li><strong>Yüzde yüz self-hosting: alt yapınızı kontrol edin, vendor lock yok.</strong></li>
<li><strong>Gerçek olay eşleşmesi: sipariş güncellemeleri, canlı bildirimler ve Laravel'in yayınladığı her şey.</strong></li>
</ul>
<p>Bu sayede, Laravel Echo’nun gerçek zamanlı gücü mobil yığınınızda yerel olarak işleniyor; genel, özel ve bildirim olayları (<code>notifyNow</code>, <code>theNotifiable</code> trait) minimum zorlukla geliyor.</p>
<p><strong>Özetle:</strong> react-native-reverb, React Native uygulamanızda birinci sınıf gerçek zamanlı özelliği sunarken, tüm Laravel yayın özelliklerine Pusher ya da geçici çözümler gereksinimi olmadan entegre olmanıza imkan tanıyor.</p>
<h2>
<a name="what-challenges-does-reactnativereverb-solve-in-react-native-laravel-apps" href="#what-challenges-does-reactnativereverb-solve-in-react-native-laravel-apps"></a>
react-native-reverb, React Native Laravel uygulamalarında hangi zorlukları çözüyor?
</h2>
<p>Bu sürüm öncesi acı noktaları ciddi ve zaman kaybettiriciydi. Laravel Reverb kullanmak istiyorsanız ama mobil ihtiyacı varsa, ya "neredeyse çalışır" bir deneyim ya da protokol hack'lerine kaybedilen haftalarla karşılaşıyordunuz.</p>
<ul>
<li><strong>Pusher React Native SDK:</strong> Sadece Pusher'ın bulutuna bağlanır. Eğer Reverb çalıştırıyorsanız (gizlilik veya maliyet nedeniyle), dışarıdasınız.</li>
<li><strong>Manuel WebSocket istemcileri:</strong> Tabii ki denemek mümkün, ama kanal çoklama, Pusher protokolü, Laravel kimlik doğrulama akışları, olay şekli uyumunu yeniden yapılandırmanız gerekecek. Bu tür gereksinimler alttan kayar, küçük bir arka uç değişikliğinde bozulur ve prod'da başınızı ağrıtır.</li>
</ul>
<p>react-native-reverb, Laravel ekosisteminde sağlam bir yer edinmiştir. API, Laravel Echo ile uyumlu; kimlik doğrulama ve kanal abonelikleri, web uygulamanızda zaten yaptığınız işlemleri yansıtır. Arka uç beklentileri değiştikçe her seferinde yeniden çalıştırmak yerine, ekosistem-native bir entegrasyon elde edersiniz.</p>
<p><strong>Özet:</strong> Geliştirme sürenizi tasarruf eder, kod kaymalarını azaltır ve tüm platformlarda kimlik doğrulama ve olay mantığını tutarlı tutarsınız.</p>
<h2>
<a name="how-to-set-up-reactnativereverb-for-laravel-reverb-realtime-integration" href="#how-to-set-up-reactnativereverb-for-laravel-reverb-realtime-integration"></a>
Laravel Reverb gerçek zamanlı entegrasyonu için react-native-reverb nasıl kurulur?
</h2>
<p>React Native mobil uygulamanız ile Laravel arka uç arasında çalışan bir gerçek zamanlı bağlantıya sahip olmak istiyorsanız, işte yapılması gerekenler:</p>
<p><strong>Ön koşullar:</strong></p>
<ul>
<li>Laravel 10+ arka uç, Laravel Reverb etkinleştirilmiş (2024+ itibarıyla).</li>
<li>React Native için çalışır durumda bir Node.js araç zinciri.</li>
<li>Özel kanallar için API kimlik doğrulama akışı (örn. Laravel Sanctum, Passport).</li>
</ul>
<p><strong>Adım 1: react-native-reverb'i projenize yükleyin</strong><br/></p>
<div class="highlight js-code-highlight">
<pre class="highlight shell"><code>npm install react-native-reverbveya
yarn add react-native-reverb
<p>react-native-reverb, React Native’in TurboModule altyapısını kullandığı için, uyumlu bir RN versiyonunda (tipik olarak 0.71+, ancak sorun yaşarsanız depo ile doğrulayın) olduğunuzdan emin olun.</p>
<p><strong>Adım 2: Laravel Reverb'i etkinleştirip yapılandırın</strong></p>
<p>Laravel <code>.env</code> dosyanızda yayın yapmayı ve Reverb sunucusunu ayarlayın:<br/></p>
<div class="highlight js-code-highlight">
<pre class="highlight plaintext"><code>BROADCAST_DRIVER=reverbREVERB_APP_ID=your-app-id
REVERB_KEY=your-reverb-key
REVERB_SECRET=your-reverb-secret
REVERB_HOST=ws.yourdomain.com
REVERB_PORT=443
REVERB_SCHEME=wss

