Vue d’ensemble d’ASP.NET Core SignalR

Qu'est-ce que SignalR ?

ASP.NET Core SignalR est une bibliothèque open source qui simplifie l’ajout de fonctionnalités web en temps réel aux applications. Les fonctionnalités web en temps réel permettent au code côté serveur d’envoyer instantanément du contenu aux clients.

Bons candidats pour SignalR :

  • Les applications ayant besoin de mises à jour fréquentes auprès du serveur. Exemples : jeux, réseaux sociaux, scrutin, enchères, cartes et applications GPS.
  • Les tableaux de bord et les applications de monitoring. Exemples : tableaux de bord des entreprises, mises à jour instantanées des ventes et alertes de voyage.
  • Les applications de collaboration. Exemples : applications de tableau blanc et logiciels de réunion d’équipe.
  • Les applications qui envoient des notifications. Exemples : réseaux sociaux, messagerie, conversation instantanée, jeux, alertes de voyage, etc.

SignalR fournit une API pour la création d’appels RPC (appels de procédures distantes) de serveur à client. Les appels RPC permettent d’appeler des fonctions sur les clients à partir du code .NET Core côté serveur. Il existe plusieurs plateformes prises en charge, chacune avec leur kit SDK client respectif. C’est la raison pour laquelle le langage de programmation appelé par l’appel RPC varie.

Voici quelques fonctionnalités de SignalR pour ASP.NET Core :

  • Gère automatiquement la gestion des connexions.
  • Envoie des messages à tous les clients connectés simultanément. Par exemple, une salle de conversation.
  • Envoie des messages à des clients ou à des groupes de clients spécifiques.
  • Met à l’échelle pour gérer l’augmentation du trafic.
  • Protocole de hub SignalR

La source est hébergée dans un référentiel SignalR sur GitHub.

Transports

SignalR prend en charge les techniques suivantes pour gérer la communication en temps réel (par ordre de dégradation élégante) :

SignalR choisit automatiquement la meilleure méthode de transport qui correspond aux capacités du serveur et du client.

Hubs

SignalR utilise des hubs pour communiquer entre les clients et les serveurs.

Un hub est un pipeline élémentaire qui permet à un client d’appeler des méthodes sur un serveur, et inversement. SignalR gère automatiquement la distribution au-delà des limites de la machine, ce qui permet aux clients d’appeler des méthodes sur le serveur, et inversement. Vous pouvez passer des paramètres fortement typés à des méthodes, ce qui active la liaison de données. SignalR fournit deux protocoles hub intégrés : un protocole texte basé sur JSON et un protocole binaire basé sur MessagePack. MessagePack crée généralement des messages plus petits par rapport à JSON. Les navigateurs plus anciens doivent prendre en charge le niveau 2 XHR pour assurer la prise en charge du protocole MessagePack.

Les hubs appellent du code côté client en envoyant des messages qui contiennent le nom et les paramètres de la méthode côté client. Les objets envoyés en tant que paramètres de méthode sont désérialisés à l’aide du protocole configuré. Le client tente de faire correspondre le nom à une méthode dans le code côté client. Lorsque le client trouve une correspondance, il appelle la méthode et lui transmet les données de paramètre désérialisées.

Navigateurs qui ne prennent pas en charge ECMAScript 6 (ES6)

SignalR cible ES6. Pour les navigateurs qui ne prennent pas en charge ES6, transpilez la bibliothèque en ES5. Pour plus d’informations, consultez Prise en main avec ES6 – Transpiler ES6 vers ES5 avec Traceur et Babel.

Ressources supplémentaires