Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Laravel Geliştiricileri için WebSockets 101: Kavramdan Üretime Deploynix Üzerinde
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Laravel Geliştiricileri için WebSockets 101: Kavramdan Üretime Deploynix Üzerinde

Yazılım

Laravel Geliştiricileri için WebSockets 101: Kavramdan Üretime Deploynix Üzerinde

teknomers
Son güncelleme: 22 Nisan 2026 23:54
teknomers
Paylaş
Paylaş

Web uygulamaları genellikle basit bir model üzerine kuruludur: tarayıcı bir istek gönderir, sunucu bunu işler, sunucu bir yanıt gönderir ve bağlantı kapanır. Bu istek-yanıt döngüsü, on yıllardır web’i beslemekte ve çoğu etkileşim için kusursuz bir şekilde çalışmaktadır. Ancak bazen yetersiz kalır.

Örneğin, bir proje yönetim uygulamasını düşünün; birçok ekip üyesi aynı görev tahtasını izliyor. Alice, bir görevi “Devam Ediyor”dan “Tamamlandı”ya taşır. Bob, aynı tahtayı izlerken, değişikliği görmeden sayfayı yenilemek zorunda kalıyor. Geleneksel bir HTTP uygulamasında, Bob’un tarayıcısının sunucuda bir şeylerin değiştiğini bilmesinin bir yolu yoktur. Sürekli olarak sunucuya “bir şey değişti mi?” diye sorması gerekecektir, bu da gereksiz bir kaynak israfına yol açar ve gecikme getirir.

WebSocket’ler bu problemi zarif bir şekilde çözer. Her istek-yanıt döngüsünden sonra bağlantıyı kapatmak yerine, bir WebSocket bağlantısı açık kalır. Sunucu, bir şey olduğunda tarayıcıya anında veri iletebilir; tarayıcının talep etmesi gerekmez. Alice görevi taşıdığında, sunucu değişikliği yayar ve Bob’un tarayıcısı gerçek zamanlı olarak güncellenir.

Bu kılavuz, sıfır WebSocket bilgisi ile başlayarak Laravel uygulamanıza çalışan bir gerçek zamanlı özellik eklemenize yardımcı olacaktır.


WebSocket’lerin Çalışma Prensibi

Bir WebSocket bağlantısı, normal bir HTTP isteği ile başlar. Tarayıcı, “WebSocket protokolüne geçmek istiyorum” diyen özel bir Upgrade başlığı ile bir HTTP isteği gönderir. Sunucu WebSocket’leri destekliyorsa, 101 durum kodu (Protokol Değişikliği) ile yanıt verir ve bağlantı HTTP’den WebSocket’e geçer.

Bağlantı yükseltildikten sonra, tam-duplex bir iletişim kanalı haline gelir. Hem tarayıcı hem de sunucu her zaman bağımsız olarak mesaj gönderebilirler. Bağlantı, herhangi bir tarafın açıkça kapatması veya bir ağ kesintisi gerçekleşmesi durumunda kapanır.

Normal HTTP’den temel farkları:

  • Kalıcı: Bağlantı oturum süresi boyunca açık kalır. Her mesaj için tekrar tekrar el sıkışma yok, her mesaj için bağlantı yükü yok.
  • Çift yönlü: Sunucu, istemcinin talep etmeden veri gönderebilir. İstemci de herhangi bir zamanda sunucuya veri gönderebilir.
  • Düşük gecikme: Mesajlar, her mesaj için bağlantı kurulumu olmadığından milisaniyeler içinde iletilir.
  • Düşük yük: WebSocket çerçeveleri, HTTP isteklerine kıyasla minimum başlık içerdiğinden, mesaj başına yük oldukça küçüktür.

WebSocket’ler, canlı bildirimler, gerçek zamanlı panolar, sohbet uygulamaları, birlikte düzenleme, canlı etkinlik güncellemeleri gibi, kullanıcıların değişiklikleri anında görmesi gereken durumlar için idealdir.


Laravel Broadcasting: Çerçeve Katmanı

Laravel, size ham WebSocket bağlantıları ile çalışmanızı istemez. Bunun yerine, karmaşıklığı temiz, olay odaklı bir API’ye dönüştüren bir Broadcasting sistemi sunar. Olayları PHP’de tanımlarsınız, yayınlarsınız ve JavaScript’te dinlersiniz. Laravel işin altyapısını halleder.

Broadcasting sistemi üç bileşenden oluşur:

Olaylar: ShouldBroadcast veya ShouldBroadcastNow arayüzlerini uygulayan standart Laravel olayları. Bu olaylar gönderildiğinde, Laravel kamuya açık özelliklerini seri hale getirir ve bunları broadcasting sürücüsüne gönderir.

Kanal: Yayınları organize eden adlandırılmış kanallar. Laravel, üç türünü destekler:

  • Herkesin dinleyebileceği genel kanallar.
  • Kimlik doğrulaması gerektiren özel kanallar. Sunucu, bir kullanıcının kanala dinleyici olarak bağlanmaktan yetkili olup olmadığını doğrular.
  • Özel kanallara ek olarak dinleyicilerin kimler olduğunu görmeyi sağlar. Bu, “kim çevrimiçi” göstergeleri için idealdir.

Laravel Echo: WebSocket sunucusuna bağlanan ve kanallara abone olmak ve olayları dinlemek için temiz bir API sağlayan bir JavaScript kütüphanesi.


Reverb ve Üçüncü Parti Hizmetler

Reverb’den önce, Laravel geliştiricilerinin WebSocket altyapısı için iki ana seçeneği vardı: Pusher (ücretli, barındırılan bir hizmet) ve laravel-websockets (Laravel uygulamanızla birlikte çalışan bir WebSocket sunucusu). Her birinin artıları ve eksileri bulunmaktadır.

Pusher, hızlı kurulum için kolaydır ancak bir üçüncü taraf bağımlılığı, sürekli maliyetler ve mesajların dış bir hizmet aracılığıyla yönlendirilmesi nedeniyle gecikmeler getirir. Laravel-websockets paketi her şeyi dahili olarak tutar ancak bir topluluk projesidir, bakımı değişken olabilir ve üretimde güvenilir bir şekilde çalışmak zor olabilir.

Laravel Reverb durumu değiştirdi. Reverb, Laravel ekibi tarafından özellikle Laravel Broadcasting için tasarlanmış yüksek performanslı bir WebSocket sunucusu sağlayan birinci parti bir Laravel paketidir. Kendi sunucularınızda çalışır, böylece hiçbir üçüncü taraf bağımlılığı, mesaj başına maliyet yok ve dış bir hizmet aracılığıyla yönlendirmeden kaynaklanan ek gecikme yoktur.

Reverb, ReactPHP üzerine inşa edilmiştir ve binlerce eşzamanlı bağlantıyı etkili bir şekilde yönetir. Özel ve varlık kanalları için Laravel’in kimlik doğrulama sistemine tam entegrasyon sağlar ve Laravel Echo ile kutudan çıktığı gibi çalışır.

Birçok Laravel uygulaması için, Deploynix’te dağıtım yaparken Reverb açık bir seçimdir. WebSocket altyapınızı tam kontrol altında bulursunuz, dış bağımlılıklarınız olmaz ve Laravel ekibinden birinci parti destek alırsınız.


Laravel Uygulamanızda Reverb Kurulumu

Mevcut bir Laravel uygulamasına Reverb eklemeye geçelim.


Adım 1: Reverb’i Kurun

Reverb’i Artisan yükleyicisi ile kurun:

php artisan install:broadcasting
        

Bu komut Reverb paketini kurar, yapılandırma dosyasını yayarlar, .env dosyanıza gerekli ortam değişkenlerini ekler ve JavaScript bağımlılıklarını (Laravel Echo ve Echo’nun WebSocket istemci kütüphanesi olarak kullandığı Pusher JS istemcisi) yükler.


Adım 2: Ortam Değişkenlerini Yapılandırın

Kurulumdan sonra, .env dosyanızda yeni Reverb ile ilgili değişkenler olacaktır:

BROADCAST_CONNECTION=reverb

REVERB_APP_ID=your-app-id
REVERB_APP_KEY=your-app-key
REVERB_APP_SECRET=your-app-secret
REVERB_HOST="localhost"
REVERB_PORT=8080
REVERB_SCHEME=https
        

Geliştirme aşamasında, localhost uygun olacaktır. Üretimde Deploynix’te bunları farklı yapılandırmanız gerekecek (bunu dağıtım bölümünde ele alacağız).


Adım 3: Yayınlanabilir Bir Olay Oluşturun

ShouldBroadcastNow uygulayan bir olay oluşturun:


php artisan make:event NewMessage --broadcast
        

Bu işlem, belirtilen kuyruğu kullanarak bir olay oluşturacak ve bu olayı dinleyen istemcilerin anında güncellenmesini sağlar. Bu kılavuzda ele alınan tüm detayları kullanarak, Laravel uygulamanızda WebSocket tabanlı, gerçek zamanlı uygulamalar oluşturmak için gerekli adımları tamamlamış olacaksınız.

Kaynak: Orijinal Makale

Contents
  • WebSocket’lerin Çalışma Prensibi
  • Laravel Broadcasting: Çerçeve Katmanı
  • Reverb ve Üçüncü Parti Hizmetler
  • Laravel Uygulamanızda Reverb Kurulumu
    • Adım 1: Reverb’i Kurun
    • Adım 2: Ortam Değişkenlerini Yapılandırın
    • Adım 3: Yayınlanabilir Bir Olay Oluşturun
MacOS Big Sur’da Kontrol Merkezi Nasıl Kullanılır ve Özelleştirilir
Laravel’de Sanctum ile CRUD API Oluşturma (Adım Adım)
Laravel’deki Korkutucu “419 Sayfa Süresi Doldu” Hatasının Gerçek Bir Öğrenme Fırsatına Dönüşmesi
Laravel Dağıtım Kontrol Listesi: Canlıya Geçmeden Kontrol Edilmesi Gereken 50 Madde
TALL Yığını Geliştirmenin Gerçek Avantajları: Neden İşletmeler Şimdi Geçiş Yapıyor?
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Uzaydan Dünyaya Lazer İletişimi: Artemis II Görevi Çığır Açıyor
Sonraki Makale Teknoloji Dünyasına Yeni Bir Soluk Getiren Quirk Gelişmeleri

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Prime Day 2026 Hakkında Bilmeniz Gerekenler
Liste
İlk İnsan Denemesi: Yaşlanmaya Bağlı Görme Kaybını Tersine Çevirme!
Genel
Sandstone, iç hukuk ekiplerine AI getirmek için 30 milyon dolar topladı
Yapay Zeka
AMD Radeon RX 9070 XT 649$ ile satışta, Gigabyte 16GB GPU 90$ indirimli
Donanım
Yeni 007 First Light Oyunu Beklentileri Artıyor
Oyun
WinRAR Açığı: Rusya Yanlı Gruplar Ukrayna’da Hırsızlık Yapıyor!
Siber Güvenlik
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?