Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

Web Doktoru - Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

İçindekiler

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.


1️⃣ Laravel Broadcast Kurulumu

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.

Broadcasting Yapılandırması

İ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-broadcasting

Bu komut, broadcasting ile ilgili yapılandırma dosyalarını projenize ekler.

.env Dosyasında Ayarlar

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=https

Bu ayarlar, Laravel’in Pusher gibi bir yayınlama servisi ile entegre olmasını sağlar.

Gerekli Paketlerin Yüklenmesi

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-js

Bu paketler, Laravel’in gerçek zamanlı bildirimler göndermesini sağlar.

Broadcasting Yapılandırmasını Etkinleştirme

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.


2️⃣ Broadcast Kullanımı ve Olay (Event) Tanımlama

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 (Event) Oluşturma

Yeni bir olay oluşturmak için aşağıdaki Artisan komutunu kullanabilirsiniz:

php artisan make:event NewMessageEvent

Bu 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.

Olayı Yayınlama

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.


3️⃣ Laravel Echo ile Gerçek Zamanlı Bildirimler

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 Kurulumu

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.

Bildirimleri Dinleme

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.

Değişiklikleri Uygulama

Son olarak, değişiklikleri uygulamak için aşağıdaki komutu çalıştırın:

npm run dev

Bu komut, JavaScript dosyalarını derler ve değişiklikleri uygular.


4️⃣ Private & Presence Channels Kullanımı

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 Kanal Tanımlama

Ö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.

Kanal Yetkilendirmesi

Ö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.

Laravel Echo ile Özel Kanal Dinleme

Ö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.


Sonuç

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. 

Picture of Web Doktoru
Web Doktoru
Matematikçi, Adli Bilişim Uzmanı, Bil. Yük. Müh. Full Stack Developer
İlginizi Çekebilir
Web Doktoru - Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

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

Web Doktoru - Laravel’de Mail Gönderme ve Bildirimler 📩

Laravel’de Mail Gönderme ve Bildirimler 📩

Laravel’de Mail Gönderme ve Bildirimler Laravel, modern web uygulamaları geliştirirken e-posta gönderimi ve bildirim sistemleri gibi ihtiyaçları kolayca karşılamak için güçlü araçlar sunar. Bu yazıda,

Whatsapp ile mesaj göndermek için tıklayın

Telefon ile sadece 09:00 - 18:00 saatleri arası ulaşabilirsiniz.