SignalR Mimarisini Anlamak: Temel Rehber


SignalR Mimarisini Anlamak: Temel Rehber

SignalR mimarisini anlamak, gerçek zamanlı web uygulamaları geliştirmek isteyen .NET geliştiriciler için önemli bir konudur. SignalR, Microsoft tarafından geliştirilmiş, istemci ve sunucu arasında çift yönlü iletişimi gerçek zamanlı olarak sağlayan güçlü bir kütüphanedir. Bu makalede SignalR mimarisinin temel bileşenlerinden ve nasıl çalıştığından bahsedeceğiz.

SignalR Nedir ve Neden Kullanılır?

SignalR mimarisi, web uygulamalarında chat sistemi, canlı gösterge tablosu veya gerçek zamanlı bildirimler gibi senaryolarda anlık veri akışı sağlar. Klasik HTTP mimarisinde istemci sürekli sunucudan veri çekmek zorunda kalırken, SignalR ile sunucu da aktif şekilde istemciye veri gönderebilir.

SignalR'ın Temel Mimari Bileşenleri

  • Hub: İstemci ve sunucu arasındaki iletişimi yöneten merkez bileşendir. Sunucu üzerinde yazılır ve istemcilerle haberleşir.
  • Persistent Connections: Düşük seviyeli iletişim için kullanılır ancak pratikte en çok Hub tercih edilir.
  • Transport Yöntemleri: SignalR, WebSockets, Server-Sent Events (SSE) ve Long Polling gibi farklı teknolojileri otomatik olarak seçer. En hızlı ve güncel transportu kullanacak şekilde optimize edilmiştir.

SignalR Uygulaması: Basit Bir Chat Örneği

SignalR ile bir chat uygulaması yapmak çok kolaydır. Aşağıda, bir SignalR Hub'ı ve istemci tarafı bağlantısı için temel kod örneği bulabilirsiniz:

Sunucu Tarafı - Hub Sınıfı


using Microsoft.AspNetCore.SignalR;

public class ChatHub : Hub
{
    public async Task SendMessage(string user, string message)
    {
        await Clients.All.SendAsync("ReceiveMessage", user, message);
    }
}

İstemci Tarafı - JavaScript ile Bağlantı


const connection = new signalR.HubConnectionBuilder()
    .withUrl("/chatHub")
    .build();

connection.on("ReceiveMessage", function (user, message) {
    const msg = user + ": " + message;
    document.getElementById("messagesList").textContent += msg + "\n";
});

connection.start().catch(function (err) {
    return console.error(err.toString());
});

Sonuç: SignalR Mimarisini Anlamak Neden Önemli?

SignalR mimarisini anlamak, yüksek performanslı ve anlık etkileşimler isteyen projeler için büyük avantaj sağlar. Doğru mimari yaklaşım ile düşük gecikme, yüksek erişilebilirlik ve çapraz platform desteği elde edebilirsiniz. Gerçek zamanlı web uygulamaları geliştirmek için SignalR mimarisi son derece pratik ve etkilidir.