Merhaba! Ben Aykhan, 1999 doğumlu bir Azerbaycanlıyım ve 2017 yılından bu yana programlamayla ilgileniyorum. Teknolojinin büyülü dünyası beni her zaman etkilemiştir ve bu merakımı kendi blogumda paylaşarak daha geniş bir kitleyle buluşturmayı amaçlıyorum.

"Laravel Reverb: Nedir, Ne İşe Yarar ve Nasıl Kullanılır?"
Laravel Reverb, Laravel uygulamanızda gerçek zamanlı olaylar ve anlık bildirimler sunmak için kullanılan bir broadcast (yayınlama) çözümüdür. Reverb, Pusher ve benzeri hizmetlere alternatif olarak tasarlanmıştır ve kendi sunucunuz üzerinde çalıştırılabilir.
Bu makalede, Reverb'ün ne işe yaradığını, kendi projenizde nasıl kullanacağınızı, subdomainler üzerinde nasıl çalıştırabileceğinizi, sunucu kurulumunu ve olası sorunları çözüm yollarıyla birlikte ele alacağız.
Reverb Nedir ve Ne İşe Yarar?
Reverb, Laravel'deki Broadcast işlevselliğini destekler ve kullanıcıların gerçek zamanlı uygulamalar geliştirmesini sağlar. Örneğin:
-
Anlık bildirimler göndermek.
-
Sohbet uygulamaları oluşturmak.
-
Dashboard güncellemeleri gibi senkronize veriler sunmak.
Reverb, açık kaynaklı ve ücretsiz bir alternatiftir. Kendi kontrolünüzde bir broadcast sunucusu çalıştırmanıza olanak tanır.
Reverb'ü Kendi Projenizde Kullanma
Adım 1: Paket Kurulumu
Reverb paketini projenize eklemek için Composer kullanın:
php artisan install:broadcasting
Bu komut sonrası sizden reverbin kurulmasını istiyormusunuz yada istemiyormusunuz diye bilgiler isteyecek yes yazıb entere tıklayın.
Adım 2: Kurulum Komutu
Paket yüklendikten sonra aşağıdaki komut ile Reverb'ü projeye kurabilirsiniz:
php artisan reverb:install
Bu komut:
-
Konfigürasyon dosyalarını oluşturur.
-
Gerekli ortam değişkenlerini (environment variables)
.env
dosyanıza ekler. -
Broadcast sistemini etkinleştirir.
Adım 3: Ortam Değişkenlerini Ayarlama
.env
dosyanıza aşağıdaki ayarları ekleyin:
BROADCAST_DRIVER=reverb
REVERB_APP_ID=your-app-id
REVERB_APP_KEY=your-app-key
REVERB_APP_SECRET=your-app-secret
REVERB_HOST=127.0.0.1
REVERB_PORT=6001
REVERB_APP_ID
, REVERB_APP_KEY
, ve REVERB_APP_SECRET
değerlerini config/reverb.php
dosyasından alabilirsiniz. zaten install:broadcasting yazdıöınızda bu bilgiler otomatik olarak oluşturalacakdır.
Adım 4: Reverb Sunucusunu Başlatma
Reverb'ü başlatmak için şu komutu çalıştırın:
php artisan reverb:start
Bu komut Reverb sunucusunu başlatır. Başlatma işleminden sonra broadcast olaylarınız Reverb üzerinden iletilmeye başlar.
Reverbden yararlanmak için eventleriniz olması gerekiyor. Bunun için aşağıdakı komutu çalıştırarak bir event kurun
php artisan make:event eventismi
Subdomainler Üzerinde Kullanım
Eğer uygulamanız birden fazla subdomain üzerinde çalışıyorsa, aşağıdaki adımları izleyebilirsiniz:
-
Subdomain Konfigürasyonu:
config/reverb.php
dosyasındaallowed_origins
ayarını düzenleyerek subdomainlerinizi belirtin:'allowed_origins' => [ 'https://subdomain1.yoursite.com', 'https://subdomain2.yoursite.com', ],
-
CORS Ayarları: Subdomainlerinizin doğru şekilde çalışabilmesi için CORS (Cross-Origin Resource Sharing) ayarlarını yapılandırın.
-
Broadcast Kullanımı: Broadcast olaylarınızı subdomainlere özgü hale getirebilirsiniz. Örneğin:
broadcast(new YourEvent())->toOthers();
Reverb Sunucusu Nasıl Kurulur?
Reverb'ü sunucunuzda çalıştırmak için aşağıdaki adımları takip edin:
Nginx Proxy Ayarları
Sunucunuzda Reverb'ü çalıştırabilmek için Nginx konfigürasyonuna aşağıdaki satırları ekleyin:
location /app {
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Scheme $scheme;
proxy_set_header SERVER_PORT $server_port;
proxy_set_header REMOTE_ADDR $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://0.0.0.0:8080;
}
location /apps {
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Scheme $scheme;
proxy_set_header SERVER_PORT $server_port;
proxy_set_header REMOTE_ADDR $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://0.0.0.0:8080;
}
Bu ayarları yaptıktan sonra Nginx'i yeniden başlatmayı unutmayın:
sudo systemctl restart nginx
Sunucuyu Başlatma
Sunucuda Reverb'ü başlatmak için aşağıdaki komut kullanılmalıdır:
php artisan reverb:start
Eğer bu komutu çalıştırmazsanız Reverb sunucunuz aktif olmayacaktır.
Olası Sorunlar ve Çözümleri
Hata: "No matching application for ID"
Bu hata, Reverb sunucusu ile uygulamanız arasında uyumsuzluk olduğunda ortaya çıkar. Çözüm için aşağıdaki komutu çalıştırarak Reverb'ü yeniden başlatabilirsiniz:
php artisan reverb:restart
Bu komut, Reverb sunucusunu sıfırlar ve gerekli bağlantıları yeniden oluşturur.
Diğer Yaygın Sorunlar
-
Port Çakışmaları:
REVERB_PORT
değeri başka bir uygulama tarafından kullanılıyorsa farklı bir port numarası seçin. -
Firewall Engellemeleri: Reverb'ün çalıştığı portların açık olduğundan emin olun.
Reverb, Laravel projelerinizde gerçek zamanlı özellikler eklemenize olanak sağlayan güçlü bir broadcast çözümüdür. Hem kendi projelerinizde hem de subdomainler üzerinde etkili bir şekilde çalışabilir. Ancak, doğru konfigürasyon ve düzenli bakım, olası sorunlardan kaçınmak için önemlidir.
Ekstra bilgiler icin laravel kendi dokumantasyonunu inceleyin Dokumantasyon linki