Vue d’ensemble de ASP.NET Core 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. Il existe de nombreux scénarios où une application ASP.NET Core peut tirer parti de SignalR :

Scénario Exemples
Applications qui nécessitent des mises à jour à haute fréquence à partir du serveur Jeux, réseaux sociaux, sites de vote, enchères, cartes, GPS
Tableaux de bord et applications pour la supervision Tableaux de bord d’entreprise, mises à jour de ventes instantanées, alertes de voyage
Applications qui prennent en charge la collaboration Applications de tableau blanc, logiciel de réunion d’équipe
Applications qui nécessitent des notifications Réseaux sociaux, e-mail, conversation, jeux, alertes voyage

Cet article fournit une introduction à l’utilisation de SignalR dans vos applications ASP.NET Core.

Fonctionnalités et code source

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

SignalR pour ASP.NET Core fournit aux développeurs de nombreuses fonctionnalités :

  • Gérer automatiquement la gestion des connexions
  • Envoyer des messages à tous les clients connectés simultanément (par exemple, une salle de conversation)
  • Envoyer des messages à des clients ou groupes de clients spécifiques
  • Effectuez une mise à l’échelle pour gérer un trafic croissant avec des options telles que le Azure SignalR Service et le backplane Redis
  • Prise en charge de l’élagage et de la compilation native anticipée (AOT) pour les scénarios pris en charge
  • Prise en charge de la gestion des types polymorphes dans les méthodes hub
  • Prise en charge du suivi distribué avec ActivitySource pour le serveur hub SignalR et le client .NET
  • Utiliser le SignalR protocole Hub

La source est hébergée dans le référentiel ASP.NET Core SignalR sur GitHub.

Transports

SignalR prend en charge les techniques suivantes pour gérer la communication en temps réel (par ordre de repli progressif) :

  • WebSockets
  • Événements envoyés par le serveur
  • Interrogation longue

SignalR choisit automatiquement la meilleure méthode de transport dans les fonctionnalités du serveur et du client. WebSockets est le transport préféré, car il offre généralement les meilleures performances.

Hubs

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

Un hub est un pipeline de haut niveau utilisé par un client et un serveur pour appeler des méthodes entre elles. SignalR gère automatiquement la distribution entre les différentes machines, afin que les clients puissent appeler des méthodes sur le serveur et inversement. Vous pouvez transmettre des paramètres fortement typés aux méthodes et activer la liaison de modèles.

SignalR prend en charge deux protocoles hub intégrés :

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. Le protocole configuré désérialise les objets envoyés en tant que paramètres de méthode. 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 transmet les données de paramètre désérialisées.

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. Les applications collaboratives incluent des exemples comme les applications de tableau blanc et les logiciels de réunion d’équipe.
  • Les applications qui envoient des notifications. Les réseaux sociaux, la messagerie, la discussion instantanée, les jeux, les alertes de voyage, et bien d'autres applications utilisent les notifications.

SignalR fournit une API pour la création d’appels RPC (appels de procédures distantes) de serveur à client. Les RPC appellent des fonctions sur les clients à partir du code .NET 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.
  • Gère l'augmentation du trafic avec des options telles que le service Azure SignalR Service et le backplane Redis.
  • Prend en charge le découpage et la compilation anticipée native (AOT) pour les scénarios pris en charge.
  • Prend en charge la gestion des types polymorphes dans les méthodes hub.
  • Prend en charge le suivi distribué avec ActivitySource pour le serveur hub SignalR et le client .NET.
  • 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 repli progressif) :

  • WebSockets
  • Événements envoyés par le serveur
  • Interrogation longue

SignalR choisit automatiquement la meilleure méthode de transport qui correspond aux capacités du serveur et du client. WebSockets est le transport préféré, car il offre généralement les meilleures performances.

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 modèles. SignalR prend en charge deux protocoles hub intégrés : un protocole texte basé sur JSON (par défaut) et un protocole binaire basé sur MessagePack. MessagePack crée généralement des messages plus petits par rapport à JSON. Pour plus d’informations, consultez Use MessagePack Hub Protocol dans SignalR pour ASP.NET Core.

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.

Ressources supplémentaires

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. Les applications collaboratives incluent des exemples comme les applications de tableau blanc et les logiciels de réunion d’équipe.
  • Les applications qui envoient des notifications. Les réseaux sociaux, la messagerie, la discussion instantanée, les jeux, les alertes de voyage, et bien d'autres applications utilisent les notifications.

SignalR fournit une API pour la création d’appels RPC (appels de procédures distantes) de serveur à client. Les RPC appellent des fonctions sur les clients à partir du code .NET 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.
  • Gère 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 repli progressif) :

  • WebSockets
  • Événements envoyés par le serveur
  • Interrogation longue

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 modèles. 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