Problemen met azure Web PubSub-gebeurtenis-handler oplossen en fouten opsporen
Wanneer een WebSocket-verbinding verbinding maakt met de Web PubSub-service, formuleert de service een HTTP POST-aanvraag naar de geregistreerde upstream en verwacht een HTTP-antwoord. We noemen de upstream als de gebeurtenis-handler en de gebeurtenis-handler is verantwoordelijk voor het afhandelen van de binnenkomende gebeurtenissen volgens de specificatie Web PubSub CloudEvents.
Het eindpunt van de gebeurtenis-handler lokaal uitvoeren
Wanneer de gebeurtenis-handler lokaal wordt uitgevoerd, is de lokale server niet openbaar toegankelijk.
Er zijn twee manieren om het verkeer naar uw localhost te routeren, een is om localhost beschikbaar te maken om toegankelijk te zijn op internet met behulp van hulpprogramma's zoals ngrok, localtunnel of TunnelRelay. Een andere manier en ook de aanbevolen manier is om awps-tunnel te gebruiken om het verkeer van de Web PubSub-service via het hulpprogramma naar uw lokale server te tunnelen.
Web PubSub lokale tunneltool brengt onder de schermen verschillende permanente tunnelverbindingen tot stand (we beschouwen dit als één type serververbindingen) met de Web PubSub-service. Wanneer er een gebeurtenis binnenkomt, stuurt de Web PubSub-service het gebeurtenisbericht door via de tunnelverbinding met het hulpprogramma voor lokale tunnel en voert het lokale tunnelprogramma de HTTP-aanvraag opnieuw uit en verzendt de aanvraag naar uw upstream-server.
Het hulpprogramma voor lokale tunnel biedt een levendige weergave van de werkstroom via een webpagina. De webweergave luistert standaard op de lokale poort upstream port + 1000
en u kunt de webweergavepoort aanpassen met behulp van de opdrachtparameter --webviewPort <your-custom-port>
.
De webweergave bevat vier tabbladen:
- Het tabblad Client biedt een test-WebSocket-client om verbinding te maken met de Web PubSub en gegevens te verzenden.
- Het tabblad Web PubSub bevat de basisinformatie over uw Web PubSub-service en sluit de pagina Live Trace in, indien ingeschakeld.
- Het tabblad Lokale tunnel bevat alle aanvragen die via het lokale tunnelprogramma naar uw lokale server worden verzonden.
- Het tabblad Server toont de basisinformatie over uw lokale server. Het biedt ook een ingebouwde echoserver met code die vergelijkbaar is met de voorbeeldcode die eronder wordt weergegeven.
Volg Ontwikkelen met het lokale tunnelhulpprogramma om het tunnelhulpprogramma lokaal te installeren en uit te voeren om de gebeurtenis-handlerserver lokaal te ontwikkelen.
Fouten opsporen in het eindpunt van de gebeurtenis-handler online
Soms ondervindt u problemen bij het verzenden van gebeurtenissen naar een geconfigureerde gebeurtenis-handler upstream. Een typisch fouttype is gerelateerd aan misbruikbeveiligingsfouten, bijvoorbeeld AbuseProtectionResponseInvalidStatusCode
, AbuseProtectionResponseMissingAllowedOrigin
of AbuseProtectionResponseFailed
. Een dergelijke fout is waarschijnlijk gerelateerd aan uw upstream-app-serverinstellingen, bijvoorbeeld 403-statuscode die te maken heeft met de configuratie van uw app-serververificatie. Mogelijk wordt de 404-statuscode veroorzaakt door inconsistente configuratie van het gebeurtenishandlerpad. Een manier om dergelijke fouten op te lossen, is door een aanvraag voor misbruikbeveiliging te verzenden naar de geconfigureerde URL van de gebeurtenis-handler om te zien of deze werkt, bijvoorbeeld met behulp van curl
de opdracht voor het verzenden van een aanvraag voor misbruikbeveiliging naar de geconfigureerde URL van de gebeurtenis-handler https://abc.web.com/eventhandler
, zoals hieronder:
curl https://abc.web.com/eventhandler -X OPTIONS -H "WebHook-Request-Origin: *" -H "ce-awpsversion: 1.0" --ssl-no-revoke -i
De opdracht moet 204 retourneren.
Volgende stappen
Gebruik deze resources om te beginnen met het bouwen van uw eigen toepassing: