ASP.NET Core SignalR ne zaman kullanılır?
SignalR gerçek zamanlı web işlevselliği sağlar. Contoso Pizza'nın siparişlerin durumunu ve teslimini izlemek için canlı bir harita gerektirdiğini hatırlayın. Yoğun saatlerde satış kaybı, ekibin istemci tarafı yoklamadan daha iyi bir çözümü araştırmasına neden oluyor.
Karar verme ölçütleri
SignalR'ı ne zaman seçmeyeceğini bilmek, ne zaman seçileceğini bilmek kadar önemlidir. Gerçek zamanlı web işlevselliği sayesinde kullanıcıların uygulama deneyimi, yanıt verme hızına bağlıdır. Bir uygulamanın hangi bölümlerinin gerçek zamanlı güncelleştirmeler gerektirdiğini anlamak en iyisidir.
SignalR kullanılmadığında
SignalR yalnızca temel alınan bağlantı kadar dayanıklıdır. Başka bir ifadeyle, istemci uygulamasının bağlantısıyla ilgili bir sorun varsa SignalR en iyi seçenek değildir.
Dikkat edilmesi gereken bir diğer nokta da SignalR'nin ölçeklenebilirliğidir. Eşzamanlı olarak bağlı istemcilerin sayısına bağlı olarak, web sunucunuz sınırlarına ulaştığında kaynak çekişmesi yaşayabilir. Böyle durumlarda, uygulamayı bir sunucu grubuna dağıtmanız ve bir arka plan kullanmanız gerekebilir. Bunu kendi başınıza uygulamak yorucu olabilir.
Alternatif olarak, Azure SignalR Hizmeti kullanarak bu sorunu çözebilirsiniz. Ya da çeşitli dayanıklılık ve olağanüstü durum kurtarma mekanizmalarından yararlanarak bunu hafifletebilirsiniz.
Örnek SignalR modaliteleri
SignalR'yi şirket içinde, bulutta veya Azure SignalR Hizmeti ile kullanabilirsiniz.
Geçerli kullanım örnekleri
SignalR, geleneksel HTTP isteklerinin yerine geçemez. Uygulamalar belirli HTTP isteklerinin ne zaman gönderildiğinden emin olmak için SignalR'yi kullanabilir. Bu şekilde birbirlerini tamamlarlar.
SignalR için birçok geçerli kullanım örneği vardır. Aşağıdaki liste SignalR için iyi adayları temsil eder:
- Sunucudan yüksek frekanslı güncelleştirmeler gerektiren uygulamalar:
- Oyun
- Sosyal ağlar
- Oylama
- Müzayede
- GPS uygulamaları
- Panolar ve izleme uygulamaları:
- Şirket panoları
- Canlı haritalar
- Anlık satış güncelleştirmeleri
- Seyahat uyarıları
- Sürekli tümleştirme/sürekli teslim (CI/CD) işlem hattı sayfaları
- İşbirliğine dayalı ve çok kullanıcılı etkileşimli uygulamalar:
- Whiteboard uygulamaları
- Ekip toplantısı uygulamaları
- Belge paylaşım uygulamaları
- Visual Studio Live Share
- Anlık bildirimler gerektiren uygulamalar:
- E-posta uygulamaları
- Sohbet uygulamaları
- Sıra tabanlı oyunlar
- Zaman serisi raporlama
- GitHub Actions, sorun ve çekme isteği sistemleri
Contoso Pizza senaryosu
Contoso Pizza canlı siparişler haritasında istemci tarafı yoklama çözümü kullanmayı düşünüyorsanız SignalR uygun bir alternatif olabilir. Tüm programlama ve mimari kararlarda olduğu gibi SignalR'nin avantajlarını ve dezavantajlarını tartmak kritik önem taşır.