Öncelikle, Laravel Echo ve Pusher’ı projenize eklemelisiniz. Laravel’da, Pusher’ı kullanarak gerçek zamanlı olayları dinlemek için şu adımları izleyebilirsiniz:
- 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
- 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
- Laravel Echo Kurulumu: Terminal veya Komut İstemcisine aşağıdaki komutu girerek Laravel Echo’yu kurun:
npm install --save laravel-echo pusher-js
- 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,
],
],
],
- 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');
}
}
- 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!']));
}
- 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);
});
- 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