Démarrage rapide : Diffuser des messages en temps réel à partir de l’application de console

Azure SignalR Service fournit une API REST permettant de prendre en charge les scénarios de communication du serveur vers le client, par exemple la diffusion. Vous pouvez choisir tout langage de programmation pouvant effectuer des appels d’API REST. Vous pouvez publier des messages pour tous les clients connectés, un client spécifique par nom ou un groupe de clients.

Dans ce démarrage rapide, vous apprenez à envoyer des messages à partir d’une application de ligne de commande vers les applications clientes connectées en C#.

Prérequis

Ce démarrage rapide peut être exécuté sur macOS, Windows ou Linux.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Vous rencontrez des problèmes ? Essayez le guide de résolution des problèmes ou faites-le nous savoir.

Connexion à Azure

Connectez-vous au portail Azure avec votre compte Azure.

Vous rencontrez des problèmes ? Essayez le guide de résolution des problèmes ou faites-le nous savoir.

Dans cette section, vous créez une instance Azure SignalR de base pour votre application. Les étapes suivantes utilisent le portail Azure pour créer une nouvelle instance, mais vous pouvez également utiliser Azure CLI. Pour plus d’informations sur la commande az signalr create, consultez la documentation de référence sur l’interface CLI Azure SignalR Service.

  1. Connectez-vous au portail Azure.
  2. En haut à gauche de la page, sélectionnez + Créer une ressource.
  3. Dans la page Créer une ressource, dans la zone de texte Rechercher dans les services et la Place de marché, entrez signalr, puis sélectionnez SignalR Service dans la liste.
  4. Dans la page SignalR Service, sélectionnez Créer.
  5. Sous l’onglet Informations de base, vous devez entrer les informations de base concernant votre nouvelle instance SignalR Service. Saisissez les valeurs suivantes :
Champ Valeur suggérée Description
Abonnement Choisir votre abonnement Sélectionnez l’abonnement que vous souhaitez utiliser pour créer une instance SignalR Service.
Groupe de ressources Créer un groupe de ressources nommé SignalRTestResources Sélectionnez ou créez un groupe de ressources pour votre ressource SignalR. Nous vous conseillons de créer un nouveau groupe de ressources pour ce tutoriel plutôt que d’utiliser un groupe existant. Pour libérer les ressources une fois le tutoriel terminé, supprimez le groupe de ressources.

La suppression du groupe de ressources supprimera également toutes les ressources qu’il contient. Cette action ne peut pas être annulée. Avant de supprimer un groupe de ressources, vérifiez qu’il ne contient pas des ressources que vous souhaitez conserver.

Pour plus d’informations, consultez Utilisation des groupes de ressources pour gérer vos ressources Azure.
Nom de la ressource testsignalr Entrez un nom de ressource unique à utiliser pour la ressource SignalR. Si le nom testsignalr n’est pas disponible dans votre région, ajoutez un chiffre ou un caractère au nom pour le rendre unique.

Le nom doit être une chaîne de 1 à 63 caractères, et il ne peut contenir que des chiffres, des lettres et le caractère - (trait d'union). Le nom ne peut ni commencer ni se terminer par un trait d’union, et il n’accepte pas de traits d’union consécutifs.
Région Choisir votre région Sélectionnez la région appropriée pour votre nouvelle instance SignalR Service.

Azure SignalR Service n’est pas disponible dans toutes les régions. Pour plus d’informations, consultez Disponibilité d’Azure SignalR Service par région.
Niveau tarifaire Sélectionnez Modifier, puis choisissez Gratuit (Dev/Test uniquement). Choisissez Sélectionner pour confirmer votre choix de niveau tarifaire. Azure SignalR Service propose trois niveaux tarifaires : Gratuit, Standard et Premium. Les tutoriels utilisent le niveau Gratuit, sauf indication contraire dans les prérequis.

Pour plus d’informations sur les différences de fonctionnalités entre les niveaux et les tarifs, consultez Tarifs Azure SignalR Service.
Mode de service Choisir le mode de service approprié Utilisez Par défaut lorsque vous hébergez la logique du hub SignalR dans vos applications web et utilisez le service SignalR en tant que proxy. Utilisez Serverless lorsque vous utilisez des technologies serverless telles qu’Azure Functions pour héberger la logique du hub SignalR.

Le mode classique est uniquement pour la compatibilité descendante et il n’est pas recommandé de l’utiliser.

Pour plus d’informations, consultez Mode de service dans Azure SignalR Service.

Vous n’avez pas besoin de modifier les paramètres des onglets Réseau et Étiquettes pour les tutoriels SignalR.

  1. Sélectionnez le bouton Vérifier + créer au bas de l’onglet Informations de base.
  2. Sous l’onglet Vérifier + créer, passez en revue les valeurs, puis sélectionnez Créer. Le déploiement prend quelques instants.
  3. Une fois le déploiement terminé, sélectionnez le bouton Accéder à la ressource.
  4. Dans la page de ressource SignalR, sélectionnez Clés dans le menu de gauche sous Paramètres.
  5. Copiez la chaîne de connexion pour la clé primaire. Vous aurez besoin de cette chaîne de connexion pour configurer votre application plus loin dans ce tutoriel.

Vous rencontrez des problèmes ? Essayez le guide de résolution des problèmes ou faites-le nous savoir.

Clonage de l’exemple d’application

Pendant le déploiement du service, passons à la préparation du code. Clonez l’exemple d’application à partir de GitHub, définissez la chaîne de connexion du service SignalR, et exécutez l’application en local.

  1. Ouvrez une fenêtre de terminal git. Passez à un dossier dans lequel vous souhaitez cloner l’exemple de projet.

  2. Exécutez la commande suivante pour cloner l’exemple de référentiel : Cette commande crée une copie de l’exemple d’application sur votre ordinateur.

    git clone https://github.com/aspnet/AzureSignalR-samples.git
    

Vous rencontrez des problèmes ? Essayez le guide de résolution des problèmes ou faites-le nous savoir.

Créer et exécuter l’exemple.

Cet exemple est une application de console montrant l’utilisation du service Azure SignalR. Il propose deux modes :

  • Mode serveur : utilisez des commandes simples pour appeler l’API REST Service Azure SignalR.
  • Mode client : connectez-vous au service Azure SignalR et recevez des messages à partir du serveur.

Vous découvrez également comment générer un jeton d’accès pour vous authentifier auprès d’Azure SignalR Service.

Générer le fichier exécutable

Nous utilisons macOS osx.10.13-x64 comme exemple. Vous trouverez des références sur la création sur d’autres plateformes.

cd AzureSignalR-samples/samples/Serverless/

dotnet publish -c Release -r osx.10.13-x64

Démarrer un client

cd bin/Release/netcoreapp2.1/osx.10.13-x64/

Serverless client <ClientName> -c "<ConnectionString>" -h <HubName>

Démarrer un serveur

cd bin/Release/netcoreapp2.1/osx.10.13-x64/

Serverless server -c "<ConnectionString>" -h <HubName>

Vous rencontrez des problèmes ? Essayez le guide de résolution des problèmes ou faites-le nous savoir.

Exécuter l’exemple sans le publier

Vous pouvez également exécuter la commande suivante pour démarrer un serveur ou un client

# Start a server
dotnet run -- server -c "<ConnectionString>" -h <HubName>

# Start a client
dotnet run -- client <ClientName> -c "<ConnectionString>" -h <HubName>

Utiliser les clés secrètes de l’utilisateur pour spécifier la chaîne de connexion

Vous pouvez exécuter dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>" dans le répertoire racine de l’exemple. Après cela, vous n’avez plus besoin de l’option -c "<ConnectionString>".

Vous rencontrez des problèmes ? Essayez le guide de résolution des problèmes ou faites-le nous savoir.

Usage

Une fois le serveur démarré, utilisez la commande pour envoyer un message :

send user <User Id>
send users <User List>
send group <Group Name>
send groups <Group List>
broadcast

Vous pouvez démarrer plusieurs clients avec des noms différents.

Vous rencontrez des problèmes ? Essayez le guide de résolution des problèmes ou faites-le nous savoir.

Intégration aux services Microsoft

Azure SignalR Service permet l’intégration de services autres que Microsoft au système.

Définition des spécifications techniques

Le tableau suivant montre toutes les versions des API REST actuellement prises en charge. Vous pouvez également trouver le fichier de définition spécifique à chaque version

Version État de l’API Porte Spécifique
1.0-preview Disponible 5002 Swagger
1.0 Disponible standard Swagger

La liste des API disponibles spécifiques à chaque version se trouvent dans la liste suivante.

API 1.0-preview 1.0
Diffuser à tout le monde
Diffuser à un groupe
Diffuser à certains groupes (Déconseillé) N / A
Envoyer à un utilisateur
Envoyer à certains utilisateurs (Déconseillé) N / A
Ajout d’un utilisateur à un groupe N / A
Suppression d’un utilisateur d’un groupe N / A
Vérifier l’existence d’un utilisateur N / A
Supprimer un utilisateur de tous les groupes N / A
Envoyer à une connexion N / A
Ajouter une connexion à un groupe N / A
Supprimer une connexion d’un groupe N / A
Fermer une connexion cliente N / A
Service Health N / A

Diffuser à tout le monde

Version Méthode HTTP des API URL de la demande Corps de la demande
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name> {"target": "<method-name>", "arguments": [...]}

Diffuser à un groupe

Version Méthode HTTP des API URL de la demande Corps de la demande
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/group/<group-name> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name> {"target": "<method-name>", "arguments": [...]}

Envoi à un utilisateur

Version Méthode HTTP des API URL de la demande Corps de la demande
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/user/<user-id> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id> {"target": "<method-name>", "arguments": [...]}

Ajout d’un utilisateur à un groupe

Version Méthode HTTP des API URL de la demande
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>

Supprimer un utilisateur d’un groupe

Version Méthode HTTP des API URL de la demande
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>

Vérifier l’existence d’un utilisateur dans un groupe

Version de l'API Méthode HTTP des API URL de la demande
1.0 GET https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups/<group-name>
1.0 GET https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>
Code du statut de réponse Description
200 L’utilisateur existe
404 L’utilisateur n’existe pas

Supprimer un utilisateur de tous les groupes

Version de l'API Méthode HTTP des API URL de la demande
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups

Envoyer un message à une connexion

Version de l'API Méthode HTTP des API URL de la demande Corps de la requête
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> { "target":"<method-name>", "arguments":[ ... ] }

Ajouter une connexion à un groupe

Version de l'API Méthode HTTP des API URL de la demande
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id>
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name>

Supprimer une connexion d’un groupe

Version de l'API Méthode HTTP des API URL de la demande
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id>
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name>

Fermer une connexion cliente

Version de l'API Méthode HTTP des API URL de la demande
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>?reason=<close-reason>

Service Health

Version de l'API Méthode HTTP des API URL de la demande
1.0 GET https://<instance-name>.service.signalr.net/api/v1/health
Code du statut de réponse Description
200 Service bon
5xx Erreur de service

Vous rencontrez des problèmes ? Essayez le guide de résolution des problèmes ou faites-le nous savoir.

Nettoyer les ressources

Si vous ne pensez pas continuer à utiliser cette application, supprimez toutes les ressources créées par ce démarrage rapide en procédant de la façon suivante de façon à ne pas exposer de coûts :

  1. Dans le portail Azure, sélectionnez Groupes de ressources tout à gauche, puis sélectionnez le groupe de ressources que vous avez créé. Vous pouvez également utiliser la zone de recherche pour trouver le groupe de ressources grâce à son nom.

  2. Dans la fenêtre qui s’ouvre, sélectionnez le groupe de ressources, puis cliquez sur Supprimer le groupe de ressources.

  3. Dans la nouvelle fenêtre, saisissez le nom du groupe de ressources à supprimer, puis cliquez sur Supprimer.

Vous rencontrez des problèmes ? Essayez le guide de résolution des problèmes ou faites-le nous savoir.

Étapes suivantes

Dans ce démarrage rapide, vous avez appris à utiliser les API REST pour diffuser des messages en temps réel de SignalR Service aux clients. Découvrez ensuite comment développer et déployer des fonctions Azure avec la liaison SignalR Service, qui repose sur l’API REST.