"Enter"a basıp içeriğe geçin

Laravel Echo Kullanimi

Öncelikle, Laravel Echo ve Pusher’ı projenize eklemelisiniz. Laravel’da, Pusher’ı kullanarak gerçek zamanlı olayları dinlemek için şu adımları izleyebilirsiniz:

  1. Composer ile Pusher Kurulumu: Terminal veya Komut İstemcisine aşağıdaki komutu girerek Pusher kütüphanesini projenize ekleyin:
   composer require pusher/pusher-php-server
  1. Pusher Kimlik Bilgileri Ayarı: .env dosyanızda Pusher kimlik bilgilerinizi tanımlayın:
   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
  1. Laravel Echo Kurulumu: Terminal veya Komut İstemcisine aşağıdaki komutu girerek Laravel Echo’yu kurun:
   npm install --save laravel-echo pusher-js
  1. Broadcasting Ayarları: broadcasting.php dosyanızda Pusher’ı broadcast sürücü olarak ayarlayı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'),
               'encrypted' => true,
           ],
       ],
   ],
  1. Broadcast Event Oluşturma: Laravel’da bir broadcast event’i oluşturun. Örneğin, TestEvent adında bir broadcast event’i oluşturalım:
   php artisan make:event TestEvent

Oluşturulan event sınıfını düzenleyerek, yayınlamak istediğiniz verileri belirtin:

   // app/Events/TestEvent.php

   namespace App\Events;

   use Illuminate\Broadcasting\Channel;
   use Illuminate\Broadcasting\InteractsWithSockets;
   use Illuminate\Broadcasting\PresenceChannel;
   use Illuminate\Broadcasting\PrivateChannel;
   use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
   use Illuminate\Foundation\Events\Dispatchable;
   use Illuminate\Queue\SerializesModels;

   class TestEvent implements ShouldBroadcast
   {
       use Dispatchable, InteractsWithSockets, SerializesModels;

       public $data;

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

       public function broadcastOn()
       {
           return new Channel('test-channel');
       }
   }
  1. Broadcasting Yoluyla Veri Gönderme: Laravel kodunuz içinde, bir olayın yayınlanmasını sağlayarak veri gönderebilirsiniz. Örneğin, bir kontrolör içinde:
   // Bir kontrolör içinde

   use App\Events\TestEvent;
   use Illuminate\Support\Facades\Event;

   public function broadcastTest()
   {
       event(new TestEvent(['message' => 'Hello from Laravel Echo!']));
   }
  1. Laravel Echo İle Socket Dinleme: JavaScript dosyanızda, Laravel Echo’yu kullanarak socket dinleyebilirsiniz. Örneğin, resources/js/app.js dosyanızda:
   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('test-channel')
       .listen('TestEvent', (event) => {
           console.log('Received event:', event);
       });
  1. Webpack ile Asset Derleme: Bu adımı atlamayın! resources/js/app.js dosyanızı Webpack aracılığıyla derlemeniz gerekiyor:
   npm run dev

veya geliştirme modunda çalıştırarak:

   npm run watch

Sonuç olarak, bu örnek, Laravel Echo kullanarak bir socket dinleme işlemini göstermektedir. Bu, Laravel projenizde gerçek zamanlı olayları dinlemek için kullanışlı bir yöntemdir.

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir