Web Doktoru - Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler
Laravel, modern web uygulamalarında gerçek zamanlı bildirimler oluşturmak için güçlü araçlar sunar. WebSockets, Pusher, Laravel Echo ve Broadcasting gibi teknolojiler sayesinde, kullanıcılara anlık olarak bildirimler göndermek mümkündür. Bu yazıda, Laravel’de gerçek zamanlı bildirimler oluşturmayı ve bu bildirimleri kullanıcılara nasıl iletebileceğinizi adım adım öğreneceksiniz.
Gerçek zamanlı bildirimler oluşturmak için öncelikle Laravel’in broadcasting (yayınlama) özelliğini aktif hale getirmeniz gerekiyor. Bu özellik, uygulamanızın belirli olayları (events) dinleyerek kullanıcılara anlık bildirimler göndermesini sağlar.
İlk adım olarak, broadcasting yapılandırmasını açmanız gerekiyor. Bunun için aşağıdaki Artisan komutunu kullanabilirsiniz:
php artisan vendor:publish --tag=laravel-broadcastingBu komut, broadcasting ile ilgili yapılandırma dosyalarını projenize ekler.
Broadcasting özelliğini kullanmak için .env dosyanızda aşağıdaki ayarları yapmanız gerekiyor:
BROADCAST_DRIVER=pusher
PUSHER_APP_ID=your-app-id
PUSHER_APP_KEY=your-app-key
PUSHER_APP_SECRET=your-app-secret
PUSHER_HOST=
PUSHER_PORT=443
PUSHER_SCHEME=httpsBu ayarlar, Laravel’in Pusher gibi bir yayınlama servisi ile entegre olmasını sağlar.
Broadcasting özelliğini kullanmak için pusher/pusher-php-server ve laravel-echo gibi paketleri yüklemeniz gerekiyor. Aşağıdaki komutları kullanarak bu paketleri yükleyebilirsiniz:
composer require pusher/pusher-php-server
npm install --save laravel-echo pusher-jsBu paketler, Laravel’in gerçek zamanlı bildirimler göndermesini sağlar.
Son olarak, config/broadcasting.php dosyasında Pusher’ı varsayılan yayınlama sürücüsü olarak ayarlayın:
'default' => env('BROADCAST_DRIVER', 'pusher'),Bu adım, Laravel’in Pusher üzerinden yayın yapmasını sağlar.
Broadcasting özelliğini kullanmak için öncelikle bir olay (event) tanımlamanız gerekiyor. Bu olay, gerçek zamanlı olarak kullanıcılara bildirim göndermek için kullanılır.
Yeni bir olay oluşturmak için aşağıdaki Artisan komutunu kullanabilirsiniz:
php artisan make:event NewMessageEventBu komut, app/Events/NewMessageEvent.php dosyasını oluşturur. Bu dosya, olayın nasıl yayınlanacağını ve hangi kanal üzerinden gönderileceğini belirler.
Oluşturduğunuz olayı yayınlamak için aşağıdaki kodu kullanabilirsiniz:
use App\Events\NewMessageEvent;
public function sendMessage()
{
$message = "Bu bir test mesajıdır!";
broadcast(new NewMessageEvent($message))->toOthers();
return response()->json(['success' => true]);
}Bu kod, NewMessageEvent olayını yayınlar ve kullanıcılara anlık olarak bildirim gönderir.
Laravel Echo, gerçek zamanlı bildirimleri dinlemek için kullanılan bir JavaScript kütüphanesidir. Bu kütüphane sayesinde, yayınlanan olayları dinleyebilir ve kullanıcıya anlık olarak bildirim gösterebilirsiniz.
Laravel Echo’yu kullanmak için öncelikle resources/js/bootstrap.js dosyasına aşağıdaki kodu eklemeniz gerekiyor:
import Echo from 'laravel-echo';
import Pusher from 'pusher-js';
window.Pusher = Pusher;
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
encrypted: true
});Bu kod, Laravel Echo’yu Pusher ile entegre eder.
Yayınlanan olayları dinlemek için resources/js/app.js dosyasına aşağıdaki kodu ekleyebilirsiniz:
window.Echo.channel('messages')
.listen('.new-message', (data) => {
console.log('Yeni mesaj:', data.message);
alert('Yeni mesaj geldi: ' + data.message);
});Bu kod, messages kanalı üzerinden gelen mesajları dinler ve kullanıcıya bir bildirim gösterir.
Son olarak, değişiklikleri uygulamak için aşağıdaki komutu çalıştırın:
npm run devBu komut, JavaScript dosyalarını derler ve değişiklikleri uygular.
Laravel, özel (private) ve varlık (presence) kanalları sayesinde, belirli kullanıcılara özel bildirimler göndermenizi sağlar. Bu kanallar, kullanıcı doğrulaması gerektiren durumlar için idealdir.
Özel bir kanal tanımlamak için olay sınıfınızda aşağıdaki kodu kullanabilirsiniz:
public function broadcastOn()
{
return new PrivateChannel('user.' . auth()->id());
}Bu kod, sadece belirli bir kullanıcıya özel bir kanal oluşturur.
Özel kanalları kullanmak için routes/channels.php dosyasında yetkilendirme eklemeniz gerekiyor:
Broadcast::channel('user.{id}', function ($user, $id) {
return (int) $user->id === (int) $id;
});Bu kod, sadece belirli bir kullanıcının kanalı dinlemesine izin verir.
Özel kanalı dinlemek için aşağıdaki kodu kullanabilirsiniz:
window.Echo.private(`user.${userId}`)
.listen('.new-message', (data) => {
console.log('Özel mesaj:', data.message);
});Bu kod, sadece belirli bir kullanıcıya özel mesajları dinler.
Laravel, gerçek zamanlı bildirimler oluşturmak için oldukça güçlü bir altyapı sunar. Bu yazıda, Laravel’de broadcasting özelliğini nasıl kullanacağınızı, olaylar (events) oluşturmayı, Laravel Echo ile bildirimleri dinlemeyi ve özel kanallar kullanmayı öğrendiniz. Bu araçlar sayesinde, kullanıcılarınıza anlık olarak bildirimler gönderebilir ve uygulamanızın etkileşimini artırabilirsiniz.
Web trafiğinin %70'inden fazlası artık mobil cihazlardan geliyor. Google'ın mobil öncelikli indekslemesi (mobile-first indexing) 2026'da tam bir…
WordPress siteniz canlıya alındıktan sonra iş bitmiyor asıl iş o zaman başlıyor. Pek çok işletme…
İşletmeniz için dijital bir çözüm geliştirmek istediğinizde, karşılaşacağınız ilk soru genellikle budur: "Mobil uygulama mı…
Web sitesi hızı, 2026'da sadece bir teknik detay değil — doğrudan iş sonuçlarını etkileyen kritik…
Sosyal medya, 2026 itibarıyla 5.2 milyar aktif kullanıcıya ulaşmış durumda. Türkiye'de ise 65 milyondan fazla…
"İçerik kraldır" diyerek başlamak bu noktada klasik kaçabilir ama gerçek değişmiyor: doğru içerik, doğru kişilere,…