design

Laravel’de Real-Time Bildirimler: Pusher ile Nasıl Yapılır?

March 25, 2025

Kullanıcılarınıza anlık bildirimler göndermek mi istiyorsunuz? Artık sayfa yenilemeden, kullanıcılarınıza gerçek zamanlı olarak ulaşabilirsiniz! Laravel + Pusher ikilisiyle bu işlem çocuk oyuncağı 🎯


Neden Pusher? 🤔


Pusher, WebSocket tabanlı bir real-time iletişim servisi. Laravel ile entegrasyonu çok kolay!

✔️ Anlık bildirimler 📨

✔️ Canlı veri güncellemeleri 🔄

✔️ Chat uygulamaları 💬

✔️ Dashboard’larda gerçek zamanlı veri 📊


Adım 1: Pusher Kurulumu 🛠️

Önce Pusher’a üye olun ve bir app oluşturun.


Laravel’de Pusher Paketini Yükleyelim:

composer require pusher/pusher-php-server

.env Dosyasını Güncelleyelim:


BROADCAST_DRIVER=pusher
PUSHER_APP_ID=your-app-id
PUSHER_APP_KEY=your-app-key
PUSHER_APP_SECRET=your-app-secret
PUSHER_APP_CLUSTER=your-cluster (e.g., mt1, eu)


Adım 2: Olay (Event) Oluşturma ⚡

Laravel’de bildirimler Event sistemine dayanır.


php artisan make:event NewNotification

NewNotification.php:


class NewNotification implements ShouldBroadcast
{
    public $message;

    public function __construct($message)
    {
        $this->message = $message;
    }

    public function broadcastOn()
    {
        return new Channel('notifications');
    }
}


Adım 3: Frontend’de Dinleme 🎧

Pusher’ı frontend’e bağlamak için Laravel Echo kullanacağız.


npm install --save laravel-echo pusher-js

resources/js/bootstrap.js:


import Echo from 'laravel-echo';

window.Pusher = require('pusher-js');

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: process.env.MIX_PUSHER_APP_KEY,
    cluster: process.env.MIX_PUSHER_APP_CLUSTER,
    encrypted: true
});

window.Echo.channel('notifications')
    .listen('NewNotification', (data) => {
        console.log('Yeni bildirim:', data.message);
        alert(data.message); // Bildirim göster
    });


Adım 4: Bildirim Gönderme 🚀

Artık bir Controller veya Command içinden bildirim tetikleyebilirsiniz.


event(new NewNotification("Merhaba! Yeni bir mesajınız var! 📩"));

Kullanıcı tarafında anında görünecek!

Bonus: Private & Presence Channels 🔒

  • Private Channel: Sadece yetkili kullanıcılar dinleyebilir.
  • Presence Channel: Kullanıcıların online/offline durumunu takip eder.


public function broadcastOn()
{
    return new PrivateChannel('user.' . $this->user->id);
}


Sonuç: Laravel + Pusher = Süper Güçler! 💪

Artık gerçek zamanlı bildirimleri kolayca entegre edebilirsiniz!

Siz de denediniz mi? Yorumlarda tecrübelerinizi paylaşın! 👇💬

#Laravel #Pusher #RealTime #WebDevelopment #WebSockets 🚀

0 + 1 =