SignalR: Real-time (Anlık) Uygulamalar ve Chat Sistemleri

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?​


SenaryoUygulama Şekli
Dashboard/PanelCanlı borsa verileri, CPU kullanımı veya grafiklerin anlık güncellenmesi.
BildirimlerBirisi fotoğrafınızı beğendiğinde veya mesaj attığında çıkan anlık popup.
OyunlarBasit tarayıcı tabanlı çok oyunculu oyunlarda senkronizasyon.
Ortak ÇalışmaGoogle 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!
 
Geri
Üst