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#.
Important
Des chaînes de connexion brutes sont utilisées dans cet article uniquement à des fins de démonstration.
Une chaîne de connexion contient les informations d’autorisation requises pour que votre application accède au service Azure Web PubSub. La clé d’accès à l’intérieur dans la chaîne de connexion est semblable à un mot de passe racine pour votre service. Dans les environnements de production, protégez toujours vos clés d’accès. Utilisez Azure Key Vault pour gérer et permuter vos clés de façon sécurisée, sécuriser votre chaîne de connexion en utilisant Microsoft Entra ID, et autoriser l’accès avec Microsoft Entra ID.
Évitez de distribuer des clés d’accès à d’autres utilisateurs, de les coder en dur ou de les enregistrer en texte brut dans un emplacement accessible à d’autres personnes. Effectuez une rotation de vos clés si vous pensez qu’elles ont pu être compromises.
Prérequis
Ce démarrage rapide peut être exécuté sur macOS, Windows ou Linux.
- Kit de développement logiciel (SDK) .NET Core
- Un éditeur de texte ou un éditeur de code de votre choix.
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.
- Connectez-vous au portail Azure.
- En haut à gauche de la page, sélectionnez + Créer une ressource.
- 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.
- Dans la page SignalR Service, sélectionnez Créer.
- 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.
- Sélectionnez le bouton Vérifier + créer au bas de l’onglet Informations de base.
- Sous l’onglet Vérifier + créer, passez en revue les valeurs, puis sélectionnez Créer. Le déploiement prend quelques instants.
- Une fois le déploiement terminé, sélectionnez le bouton Accéder à la ressource.
- Dans la page de ressource SignalR, sélectionnez Clés dans le menu de gauche sous Paramètres.
- 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, préparons le code. Tout d’abord, clonez l’exemple d’application à partir de GitHub. Ensuite, définissez la chaîne de connexion de SignalR Service sur l’application. Enfin, exécutez l’application localement.
Ouvrez une fenêtre de terminal git. Passez à un dossier dans lequel vous souhaitez cloner l’exemple de projet.
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
Des chaînes de connexion brutes sont utilisées dans cet article à des fins de démonstration uniquement. Dans les environnements de production, protégez toujours vos clés d’accès. Utilisez Azure Key Vault pour gérer et permuter vos clés de façon sécurisée, sécuriser votre chaîne de connexion en utilisant Microsoft Entra ID, et autoriser l’accès avec Microsoft Entra ID.
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 :
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.
Dans la fenêtre qui s’ouvre, sélectionnez le groupe de ressources, puis cliquez sur Supprimer le groupe de ressources.
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.