SignalR ile Gerçek Zamanlı Web Uygulamaları Geliştirme
Modern web uygulamaları artık statik değil; kullanıcılar anlık bildirimler, canlı güncellemeler ve çift yönlü iletişim beklemektedir. ASP.NET Core SignalR, bu gereksinimleri karşılamak için geliştirilmiş güçlü bir kütüphanedir.
SignalR Nasıl Çalışır?
SignalR, istemci ile sunucu arasında kalıcı bir bağlantı kurar. Bağlantı türünü otomatik olarak belirler: WebSocket destekleniyorsa WebSocket kullanır, desteklenmiyorsa Server-Sent Events veya Long Polling'e geri döner.
Hub Tanımlama
Hub, SignalR'ın merkezi bileşenidir. İstemcilerden gelen mesajları alır ve bağlı istemcilere mesaj iletir:
public class ChatHub : Hub
{
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
public async Task JoinGroup(string groupName)
{
await Groups.AddToGroupAsync(Context.ConnectionId, groupName);
}
}Program.cs Konfigürasyonu
SignalR'ı uygulamaya eklemek son derece basittir. DI container'a servis eklendikten sonra endpoint tanımlanır ve bağlantı kurulmaya hazır hale gelir.
JavaScript İstemcisi
Tarayıcı tarafında SignalR JavaScript kütüphanesi ile hub'a bağlanmak ve mesaj göndermek birkaç satır kod ile gerçekleştirilebilir. Bağlantı koptuğunda otomatik yeniden bağlanma stratejisi de dahil edilmelidir.
Gerçek Kullanım Senaryoları
- Canlı bildirim sistemi: Kullanıcıya anlık push bildirimleri gönderme
- Chat uygulaması: Grup ve bireysel mesajlaşma
- Canlı dashboard: Stok takibi, sipariş durumu, analitik verilerin anlık güncellenmesi
- Çok kullanıcılı işbirliği: Aynı belge üzerinde eş zamanlı düzenleme
Ölçeklenebilirlik: Redis Backplane
Tek sunucu yeterli olduğunda SignalR doğrudan çalışır. Ancak birden fazla sunucu çalıştırıldığında, bağlantılar farklı sunuculara dağıldığından mesajlar tüm istemcilere ulaşmayabilir. Redis backplane bu sorunu çözer; tüm sunucular Redis üzerinden iletişim kurar.
Sonuç
SignalR, gerçek zamanlı web uygulamaları geliştirmeyi son derece kolaylaştırmaktadır. WebSocket'in karmaşıklığını soyutlayarak geliştiricinin iş mantığına odaklanmasını sağlar. Ekolsoft'un kurumsal projelerinde SignalR ile canlı operasyon takip panelleri ve bildirim sistemleri başarıyla uygulanmıştır.