crazy_coder
Moderatör
- Katılım
- 20 Şub 2026
- Mesajlar
- 204
- Tepkime puanı
- 0
- Puanları
- 16
SignalR: Real-time (Anlık) Web Uygulamalarının Kalbi
SignalR, sunucu tarafındaki kodun, bağlı olan istemcilere (tarayıcılar, mobil cihazlar vb.) anında bildirim göndermesini sağlayan açık kaynaklı bir kütüphanedir. Geleneksel HTTP isteklerinin aksine, sunucu "istek beklemeden" istemciye veri itebilir (Push).
1. SignalR Nasıl Çalışır? (Transport Seçenekleri)
SignalR akıllıdır. Bağlantıyı kurmak için en iyi yöntemi otomatik seçer:
[]WebSockets: En modern ve performanslı yöntem. Çift taraflı (Full-duplex) gerçek zamanlı iletişim sağlar.
[]Server-Sent Events: Sadece sunucudan istemciye akışın olduğu durumlarda kullanılır.- Long Polling: Diğer yöntemler desteklenmiyorsa, sürekli istek atarak veri kontrolü yapan "eski ama güvenilir" yöntem.
2. Hub Nedir? (Merkez İstasyon)
SignalR'da iletişim Hub adı verilen sınıflar üzerinden döner. Hub, sunucu ile istemci arasındaki yüksek seviyeli bir boru hattıdır.
Örnek: Basit bir Sohbet (Chat) Hub'ı
C#:
using Microsoft.AspNetCore.SignalR;
public class ChatHub : Hub
{
// Bu metot istemciler (JS/C#) tarafından çağrılabilir
public async Task MesajGonder(string kullanici, string mesaj)
{
// Bağlı olan tüm kullanıcılara bu mesajı ilet
await Clients.All.SendAsync("MesajAl", kullanici, mesaj);
}
}
3. İstemci Tarafı (JavaScript Kullanımı)
Sunucudaki Hub'a bağlanmak ve metotları tetiklemek için SignalR'ın hafif bir kütüphanesi kullanılır.
JavaScript:
const connection = new signalR.HubConnectionBuilder()
.withUrl("/chatHub")
.build();
// Sunucudan mesaj geldiğinde çalışacak fonksiyon
connection.on("MesajAl", (user, message) => {
console.log(${user}: ${message});
});
// Bağlantıyı başlat
connection.start();
4. Gerçek Hayat Senaryoları: Nerelerde Kullanılır?
| Senaryo | Uygulama Şekli |
|---|---|
| Dashboard/Panel | Canlı borsa verileri, CPU kullanımı veya grafiklerin anlık güncellenmesi. |
| Bildirimler | Birisi fotoğrafınızı beğendiğinde veya mesaj attığında çıkan anlık popup. |
| Oyunlar | Basit tarayıcı tabanlı çok oyunculu oyunlarda senkronizasyon. |
| Ortak Çalışma | Google Docs gibi, birden fazla kişinin aynı belgeyi anlık düzenlemesi. |
Sonuç
SignalR, karmaşık WebSocket protokollerini yönetme yükünü üzerinizden alır. Bağlantı kopması durumunda otomatik yeniden bağlanma (Auto-reconnect) ve mesajların gruplandırılması gibi özellikleriyle, anlık uygulama geliştirmeyi inanılmaz kolaylaştırır. Artık kullanıcılarınızın "F5" tuşuna basmasına gerek yok!