ASP.NET Core SignalR ne zaman kullanılır?

Tamamlandı

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.

  • Şirket içi:

    Diagram of ASP.NET Core SignalR being used on-premises.

  • Bulutta:

    Diagram of ASP.NET Core SignalR being used in the cloud.

  • Azure SignalR Hizmeti ile:

    Diagram of using Azure SignalR Service.

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.