Quand utiliser ASP.NET Core SignalR

Effectué

SignalR fournit des fonctionnalités web en temps réel. Rappelez-vous que Contoso Pizza nécessite une carte en temps réel pour suivre l’état et la livraison des commandes. La perte de ventes aux heures de pointe encourage l’équipe à rechercher une meilleure solution que l’interrogation côté client.

Critères de décision

Savoir quand ne pas choisir SignalR est tout aussi important que de savoir quand le choisir. Avec les fonctionnalités web en temps réel, l’expérience utilisateur d’une application repose sur sa réactivité. Il est préférable de savoir identifier les parties d’une application qui nécessitent des mises à jour en temps réel.

Quand ne pas utiliser SignalR

La stabilité de SignalR dépend de sa connexion sous-jacente. C’est-à-dire que si la connectivité d’une application cliente pose problème, SignalR n’est pas le meilleur choix.

La scalabilité de SignalR est un autre aspect à prendre en compte. Selon le nombre de clients connectés simultanément, votre serveur web peut être confronté à des problèmes de contention des ressources quand il atteint ses limites. Dans ce genre de situation, vous devrez probablement déployer l’application sur une batterie de serveurs et utiliser une infrastructure d’intégration (backplane). Si vous l’implémentez vous-même, cela risque d’être fastidieux.

Vous pouvez également résoudre ce problème à l’aide d’Azure SignalR Service. Ou vous pouvez l’atténuer en tirant parti des différents mécanismes de résilience et de récupération d’urgence.

Exemples de modalités liées à SignalR

Vous pouvez utiliser SignalR localement, dans le cloud ou avec Azure SignalR Service.

  • Localement :

    Diagramme d’ASP.NET Core SignalR utilisé localement.

  • Dans le cloud :

    Diagramme d’ASP.NET Core SignalR utilisé dans le cloud.

  • Avec Azure SignalR Service :

    Diagramme d’utilisation d’Azure SignalR Service.

Cas d’usage valides

SignalR ne remplace pas les requêtes HTTP classiques. Les applications peuvent utiliser SignalR pour savoir quand effectuer des requêtes HTTP spécifiques. De cette façon, elles se complètent les unes les autres.

Il existe de nombreux cas d’usage valides pour SignalR. La liste suivante représente de bons candidats pour SignalR :

  • Applications qui nécessitent des mises à jour très fréquentes depuis le serveur :
    • Jeux
    • Réseaux sociaux
    • Vote
    • Enchères
    • Applications GPS
  • Tableaux de bord et applications de monitoring :
    • Tableaux de bord d’entreprise
    • Cartes en temps réel
    • Mises à jour instantanées des ventes
    • Alertes relatives aux voyages
    • Pages de pipeline intégration continue/livraison continue (CI/CD)
  • Applications interactives de collaboration et multi-utilisateurs :
    • Applications de tableau blanc
    • Applications de réunion d’équipe
    • Applications de partage de documents
    • Visual Studio Live Share
  • Applications nécessitant des notifications instantanées :
    • Applications de messagerie
    • Applications de conversation
    • Jeux au tour par tour
    • Rapports de série chronologique
    • GitHub Actions, systèmes de gestion des incidents et de demandes de tirage (pull requests)

Scénario de Contoso Pizza

Si vous envisagez la solution d’interrogation côté client pour la carte des commandes en temps réel de Contoso Pizza, SignalR peut représenter une alternative viable. Comme pour toutes les décisions relatives à la programmation et à l’architecture, il est vital de peser le pour et le contre de SignalR.