design

Laravel ile Real-Time Uygulamalar: Pusher ve WebSocket Entegrasyonu

March 23, 2025

Merhaba arkadaşlar, bugün sizlere Laravel ile real-time (gerçek zamanlı) uygulamalar geliştirmeyi ve Pusher ile WebSocket entegrasyonunu anlatacağım. Real-time uygulamalar, kullanıcıların anlık olarak veri alışverişi yapmasını sağlar. Örneğin, anlık mesajlaşma uygulamaları, bildirim sistemleri veya canlı skor uygulamaları gibi projelerde real-time özellikleri kullanabilirsiniz. Laravel, bu tür uygulamaları geliştirmek için Pusher ve WebSocket gibi araçlarla kolayca entegre olabilir. Gelin, bu süreci adım adım inceleyelim.


Real-Time Uygulamalar Nedir?

Real-time uygulamalar, kullanıcıların anlık olarak veri alışverişi yapmasını sağlayan uygulamalardır. Bu tür uygulamalar, sunucu ve istemci arasında sürekli bir bağlantı kurar ve veriler anında iletilir. Laravel, bu tür uygulamaları geliştirmek için Pusher ve WebSocket gibi araçlarla entegre çalışabilir.


Pusher Nedir?

Pusher, real-time uygulamalar geliştirmek için kullanılan bir servistir. WebSocket tabanlı çalışır ve sunucu ile istemci arasında anlık veri iletişimi sağlar. Laravel, Pusher ile kolayca entegre olabilir ve real-time özellikler ekleyebilir.


Laravel ile Pusher Entegrasyonu


  1. Pusher Hesabı Oluşturma
  2. İlk olarak, Pusher web sitesine giderek bir hesap oluşturun ve yeni bir uygulama oluşturun. Uygulamanızın kimlik bilgilerini (App ID, Key, Secret ve Cluster) alın.
  3. Pusher Paketini Kurma
  4. Laravel projenize Pusher paketini kurmak için aşağıdaki komutu çalıştırın:


composer require pusher/pusher-php-server


  1. Pusher Ayarlarını Yapılandırma
  2. .env dosyasını açarak Pusher kimlik bilgilerinizi ekleyin:


PUSHER_APP_ID=your-app-id
PUSHER_APP_KEY=your-app-key
PUSHER_APP_SECRET=your-app-secret
PUSHER_APP_CLUSTER=your-app-cluster


  1. Ardından, config/broadcasting.php dosyasında Pusher ayarlarını yapılandırın:


'connections' => [
    '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,
        ],
    ],
],


  1. Event Oluşturma
  2. Laravel’de real-time olaylar için event’ler kullanılır. Yeni bir event oluşturmak için aşağıdaki komutu çalıştırın:


php artisan make:event NewMessage
  1. Bu komut, app/Events/NewMessage.php dosyasını oluşturacaktır. Event dosyasını açarak broadcastOn metodunu düzenleyin:


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


  1. Event’i Yayınlama
  2. Event’i yayınlamak için event fonksiyonunu kullanabilirsiniz. Örneğin, bir mesaj gönderildiğinde event’i yayınlayalım:


event(new NewMessage($message));


  1. Front-end’de Pusher’ı Kullanma
  2. Front-end’de Pusher’ı kullanmak için önce Pusher JavaScript kütüphanesini projenize ekleyin:



<script src="https://js.pusher.com/7.0/pusher.min.js"></script>


  1. Run HTML
  2. Ardından, Pusher’ı başlatın ve event’leri dinleyin:


const pusher = new Pusher('your-app-key', {
    cluster: 'your-app-cluster',
    encrypted: true
});

const channel = pusher.subscribe('chat');
channel.bind('NewMessage', function(data) {
    console.log('Yeni mesaj:', data);
});


WebSocket Nedir?

WebSocket, sunucu ve istemci arasında sürekli bir bağlantı kurarak anlık veri iletişimi sağlayan bir protokoldür. Pusher, WebSocket tabanlı çalışır ve Laravel ile kolayca entegre olabilir.


Laravel ile WebSocket Entegrasyonu

Laravel, WebSocket entegrasyonu için Pusher gibi araçları kullanır. Yukarıda anlatılan Pusher entegrasyonu, WebSocket tabanlı çalışır ve real-time özellikler eklemenizi sağlar.


Real-Time Uygulamaların Avantajları

  • Anlık Veri İletişimi: Kullanıcılar anlık olarak veri alışverişi yapabilir.
  • Kullanıcı Deneyimi: Real-time özellikler, kullanıcı deneyimini artırır.
  • Esneklik: Pusher ve WebSocket gibi araçlar, farklı ihtiyaçlara uygun esnek bir yapı sunar.



Laravel ile real-time uygulamalar geliştirmek, Pusher ve WebSocket entegrasyonu sayesinde oldukça kolaydır. Eğer anlık mesajlaşma, bildirim sistemleri veya canlı skor uygulamaları gibi projeler geliştirmek istiyorsanız, bu özellikleri mutlaka denemelisiniz. Bir sonraki yazımda, Laravel’de Queue ve Job Yönetimi: Arka Plan İşlemleri konusuna değineceğim. Görüşmek üzere!

7 + 2 =