Real-time Web Uygulamaları: WebSocket ve Laravel Broadcasting

z

zafer ak

Yazar

24 November 2025 2 dakika okuma 2 görüntülenme
Real-time Web Uygulamaları: WebSocket ve Laravel Broadcasting
WebSocket ile gerçek zamanlı uygulamalar. Laravel Echo, Pusher, Soketi ve Socket.io entegrasyonu.

WebSocket Nedir?

WebSocket, client ve server arasında full-duplex, persistent connection sağlayan protokoldür. HTTP'nin request-response modelinden farklı olarak, her iki taraf da istediği zaman mesaj gönderebilir.

Kullanım Alanları

  • Chat uygulamaları
  • Canlı bildirimler
  • Real-time dashboard
  • Online oyunlar
  • Collaborative editing

Laravel Broadcasting

# Installation
composer require pusher/pusher-php-server
npm install laravel-echo pusher-js

# .env
BROADCAST_DRIVER=pusher
PUSHER_APP_ID=your-app-id
PUSHER_APP_KEY=your-key
PUSHER_APP_SECRET=your-secret
PUSHER_APP_CLUSTER=eu

Event Oluşturma

// app/Events/MessageSent.php
class MessageSent implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public function __construct(
        public Message $message
    ) {}

    public function broadcastOn(): array
    {
        return [
            new PrivateChannel('chat.' . $this->message->room_id),
        ];
    }
}

Channel Authorization

// routes/channels.php
Broadcast::channel('chat.{roomId}', function ($user, $roomId) {
    return $user->canAccessRoom($roomId);
});

Frontend (Laravel Echo)

// resources/js/bootstrap.js
import Echo from 'laravel-echo';
import Pusher from 'pusher-js';

window.Pusher = Pusher;
window.Echo = new Echo({
    broadcaster: 'pusher',
    key: import.meta.env.VITE_PUSHER_APP_KEY,
    cluster: import.meta.env.VITE_PUSHER_APP_CLUSTER,
});

// Listen
Echo.private('chat.' + roomId)
    .listen('MessageSent', (e) => {
        console.log(e.message);
    });

Pusher Alternatifleri

  • Soketi: Self-hosted, Pusher compatible
  • Laravel Reverb: Laravel'in kendi WebSocket server'ı
  • Ably: Enterprise-grade

Sonuç

Real-time özellikler modern web uygulamalarının önemli parçasıdır. Laravel Broadcasting bu işi kolaylaştırır.

İlgili Yazılar