Démarrage rapide : Publier des messages en utilisant le Kit de développement logiciel (SDK) du service Azure Web PubSub

Azure Web PubSub vous aide à gérer les clients WebSocket. Ce guide de démarrage rapide vous montre comment publier des messages à des clients WebSocket à l’aide du Kit de développement logiciel (SDK) du service Azure Web PubSub.

Prérequis

  • Si vous n’avez pas d’abonnement Azure, créez un compte gratuit.
  • un interpréteur de commandes Bash et PowerShell. Les exemples Python, JavaScript et Java nécessitent un interpréteur de commandes Bash.
  • Un éditeur de fichiers tel que VSCode.
  • Azure CLI : installer Azure CLI

Si vous créez le projet sur un ordinateur local, vous devez installer les dépendances pour le langage que vous utilisez :

Installez à la fois le kit SDK .NET Core et aspnetcore et le runtime .Net.

.NET Core

1. Configurer

Pour vous connecter à Azure à partir de l’interface CLI, exécutez la commande suivante et suivez les invites pour procéder à l’authentification. Si vous utilisez Cloud Shell, il n’est pas nécessaire de se connecter.

az login

Vérifiez que vous exécutez la dernière version de l’interface CLI à l’aide de la commande de mise à niveau.

az upgrade

Ensuite, installez ou mettez à jour l’extension Azure Web PubSub pour l’interface CLI, si elle n’a pas été installée avec az upgrade.

az extension add --name webpubsub --upgrade

1. Créer un groupe de ressources

Définissez les variables d’environnement suivantes. Remplacez l’<espace réservé> par un nom Web PubSub unique.

RESOURCE_GROUP="webpubsub-resource-group"
LOCATION="EastUS"
WEB_PUBSUB_NAME="<your-unique-name>"

Créez un groupe de ressources pour le projet Web PubSub.

az group create \
  --name $RESOURCE_GROUP \
  --location $LOCATION

2. Déployer une instance de service Web PubSub

Utilisez la commande az webpubsub create pour créer et déployer une instance de service Web PubSub.

az webpubsub create \
  --name $WEB_PUBSUB_NAME \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION \
  --sku Free_F1

Enregistrez la chaîne de connexion du service. La chaîne de connexion est utilisée par le Kit de développement logiciel (SDK) de service pour publier des messages.

Important

Dans un environnement de production, vous devez stocker en toute sécurité les chaînes de connexion à l’aide d’Azure Key Vault.

az webpubsub key show --name $WEB_PUBSUB_NAME --resource-group $RESOURCE_GROUP --query primaryConnectionString

3. Connecter un client à l’instance de service

Créez un client Web PubSub. Le client maintient une connexion au service jusqu’à son arrêt.

Utilisez la commande az webpubsub client pour démarrer une connexion cliente WebSocket au service. Les clients se connectent toujours à un hub. Indiquez donc un nom de hub auquel le client doit se connecter.

az webpubsub client start \
  --name $WEB_PUBSUB_NAME \
  --resource-group $RESOURCE_GROUP \
  --hub-name "myHub1" \
  --user-id "user1"

La connexion au service Web PubSub est établie lorsque vous recevez un message JSON indiquant que le client est désormais connecté avec succès et qu’il est attribué avec un connectionId unique :

{"type":"system","event":"connected","userId":"user1","connectionId":"<your_unique_connection_id>"}

4. Publier des messages à l’aide du Kit de développement logiciel (SDK) de service

Vous allez utiliser le Kit de développement logiciel (SDK) Azure Web PubSub pour publier un message à tous les clients connectés au hub. Vous pouvez choisir entre C#, JavaScript, Python et Java. Les dépendances de chaque langage sont installées dans les étapes de ce langage. Python, JavaScript et Java nécessitent un interpréteur de commandes Bash pour exécuter les commandes de ce démarrage rapide.

Configurer le projet pour publier des messages

  1. Ouvrez un nouvel interpréteur de commandes pour ce projet.

  2. Enregistrez la chaîne de connexion à partir de l’interpréteur de commandes client. Remplacez l’espace réservé <your_connection_string> par la chaîne de connexion que vous avez affichée à une étape précédente.

    connection_string="<your_connection_string>"
    
  3. À présent, sélectionnez le langage de votre projet.

  1. Ajoutez un nouveau projet appelé publisher et le package du Kit de développement logiciel (SDK) Azure.Messaging.WebPubSub.

    mkdir publisher
    cd publisher
    dotnet new console
    dotnet add package Azure.Messaging.WebPubSub
    
  2. Mettez à jour le fichier Program.cs de façon à utiliser la classe WebPubSubServiceClient pour envoyer des messages aux clients. Remplacez le code du fichier Program.cs par le code suivant.

    using System;
    using System.Threading.Tasks;
    using Azure.Messaging.WebPubSub;
    
    namespace publisher
    {
        class Program
        {
            static async Task Main(string[] args)
            {
                if (args.Length != 3) {
                    Console.WriteLine("Usage: publisher <connectionString> <hub> <message>");
                    return;
                }
                var connectionString = args[0];
                var hub = args[1];
                var message = args[2];
    
                var service = new WebPubSubServiceClient(connectionString, hub);
    
                // Send messages to all the connected clients
                // You can also try SendToConnectionAsync to send messages to the specific connection
                await service.SendToAllAsync(message);
            }
        }
    }
    

    L’appel service.SendToAllAsync() envoie simplement un message à tous les clients connectés dans le hub.

  3. Exécutez la commande suivante pour publier un message sur le service.

    dotnet run $connection_string "myHub1" "Hello World"
    
  4. L’interpréteur de commandes précédent contenant le client Web PubSub affiche le message reçu.

    {"type":"message","from":"server","dataType":"text","data":"Hello World"}
    

Nettoyage

Vous pouvez supprimer les ressources que vous avez créées dans ce guide de démarrage rapide en supprimant le groupe de ressources qui les contient.

az group delete --name $RESOURCE_GROUP --yes