Laravel ile Gerçek Zamanlı Bildirimler: Neden Pusher?
Adım 1: Pusher Hesabı Oluşturma
Hesap oluşturduktan sonra, yeni bir app oluşturun ve API anahtarlarını alacağınız sayfaya erişin. Bu anahtarları daha sonra Laravel projenizde kullanacağız.
Adım 2: Laravel Projenizde Pusher’ı Kurma
composer require pusher/pusher-php-server
Kurulum tamamlandıktan sonra, Laravel config dosyalarını düzenlemeniz gerekiyor. .env dosyasına şu satırları ekleyin:
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-app-cluster
Buradaki değerleri, Pusher'dan aldığınız API anahtarları ile değiştirmeniz gerektiğini unutmayın.
Adım 3: Laravel’in Broadcasting Özelliğini Yapılandırma
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'useTLS' => true,
],
],
Şimdi, Laravel’in broadcasting özelliği için gerekli yapılandırmayı tamamladık. Artık Pusher ile bağlantı kurmak için her şey hazır.
Adım 4: Event ve Listener Oluşturma
İlk olarak, terminal üzerinden aşağıdaki komutla bir event oluşturun:
php artisan make:event NewMessage
Bu event, kullanıcılara anlık bir bildirim gönderecek. Şimdi, event dosyanızı açın ve aşağıdaki gibi düzenleyin:
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class NewMessage implements ShouldBroadcast
{
use Dispatchable, SerializesModels;
public $message;
public function __construct($message)
{
$this->message = $message;
}
public function broadcastOn()
{
return new Channel('chat');
}
}
Yukarıdaki kod, bir kullanıcıya mesaj gönderildiğinde chat kanalında bildirim yayacaktır.
Adım 5: Bildirimleri Yayma
use App\Events\NewMessage;
public function sendMessage(Request $request)
{
$message = $request->input('message');
broadcast(new NewMessage($message));
return response()->json(['status' => 'Message Sent!']);
}
Bu adımda, broadcast() fonksiyonu ile Pusher'a mesaj gönderiyoruz. Bu sayede, tüm abone olan kullanıcılar anında bildirim alacaktır.
Adım 6: Front-End (JavaScript) ile Entegrasyon
// Laravel Echo and Pusher setup
import Echo from 'laravel-echo';
window.Pusher = require('pusher-js');
const echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
encrypted: true
});
echo.channel('chat')
.listen('NewMessage', (event) => {
alert('New message: ' + event.message);
});
Bu, Pusher'dan gelen bildirimleri almanızı ve bir mesaj geldiğinde kullanıcıya bir alert göstermenizi sağlayacaktır.
Sonuç
Bu yazı, Laravel ile gerçek zamanlı bildirimler eklemek isteyen herkes için mükemmel bir rehber oldu. Eğer daha fazla soru veya öneriniz varsa, yorumlar kısmında bizimle paylaşabilirsiniz!