Real-time Web Uygulamaları: WebSocket ve Laravel Broadcasting
z
zafer ak
Yazar
24 November 2025
2 dakika okuma
2 görüntülenme
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.