Partager via


Comment dépanner et déboguer le gestionnaire d’événements Azure Web PubSub

Lorsqu’une connexion WebSocket se connecte au service Web PubSub, le service formule une requête HTTP POST en amont et attend une réponse HTTP. Nous appelons l’amont Gestionnaire d’événements, et le Gestionnaire d’événements est chargé de gérer les événements entrants en suivant la spécification Web PubSub CloudEvents.

Exécuter le point de terminaison du gestionnaire d’événements localement

Lorsque le gestionnaire d’événements s’exécute localement, le serveur local n’est pas accessible publiquement.

Il existe deux façons d’acheminer le trafic vers votre localhost, l'une consiste à exposer localhost pour qu'il soit accessible sur Internet en utilisant des outils tels que ngrok, localtunnelou TunnelRelay. Une autre façon, et également la méthode recommandée, consiste à utiliser awps-tunnel pour faire transiter le trafic du service Web PubSub à travers l'outil vers votre serveur local.

L'outil de tunnel local Web PubSub établit en réalité plusieurs connexions de tunnel persistantes (que nous considérons comme un type de connexions serveur) vers le service Web PubSub. Chaque fois qu’un événement se produit, le service Web PubSub route le message d’événement via la connexion de tunnel vers l'outil de tunnel local, et l'outil de tunnel local reformate la requête HTTP et envoie la requête à votre serveur en amont.

L'outil de tunnel local offre une vue détaillée du workflow via une page de vue web. La vue web par défaut écoute sur le port local upstream port + 1000, et vous pouvez personnaliser le port vue web à l’aide du paramètre de commande --webviewPort <your-custom-port>.

La vue web contient quatre onglets :

  • Onglet Client : il fournit un client WebSocket de test pour connecter Web PubSub et envoyer des données.
  • Onglet Web PubSub : il fournit les informations de base sur votre service Web PubSub et incorpore la page Live Trace si elle est activée.
  • Onglet Tunnel local : il répertorie toutes les requêtes qui transitent par l’outil de tunnel local vers votre serveur local.
  • Onglet Serveur : il affiche les informations de base sur votre serveur local. Il fournit également un serveur de renvoi intégré avec un code similaire à l'exemple de code affiché juste en dessous.

Capture d’écran montrant l’inspection du trafic.

Suivez Développer avec l’outil de tunnel local pour installer et exécuter l’outil de tunnel localement pour développer votre serveur de gestionnaire d’événements localement.

Déboguer le point de terminaison du gestionnaire d’événements en ligne

Parfois, vous rencontrez des problèmes lors de l’envoi d’événements à un gestionnaire d’événements configuré en amont. Un type d’erreur classique est lié à un échec de protection contre les abus, par exemple, AbuseProtectionResponseInvalidStatusCode, AbuseProtectionResponseMissingAllowedOriginou AbuseProtectionResponseFailed. Une telle erreur est probablement liée aux paramètres de votre serveur d’applications en amont, par exemple, le code d’état 403 peut être lié à votre configuration d’authentification du serveur d’applications, le code d’état 404 peut être dû à une configuration incohérente du chemin d’accès du gestionnaire d’événements. Une façon de résoudre ce problème consiste à envoyer une demande de protection abusive à votre URL de gestionnaire d’événements configurée pour voir si elle fonctionne, par exemple, à l’aide de la commande curl pour envoyer une demande de protection abusive à l’URL de votre gestionnaire d’événements configuré https://abc.web.com/eventhandler est comme suit :

curl https://abc.web.com/eventhandler -X OPTIONS -H "WebHook-Request-Origin: *" -H "ce-awpsversion: 1.0" --ssl-no-revoke -i

La commande doit retourner 204.

Étapes suivantes

Utilisez ces ressources pour commencer à créer votre propre application :