Condividi tramite


Come risolvere i problemi ed eseguire il debug del gestore eventi Web PubSub di Azure

Quando una connessione WebSocket si connette al servizio Web PubSub, il servizio formula una richiesta HTTP POST all'upstream registrato e prevede una risposta HTTP. Chiamiamo upstream come gestore eventi e il gestore eventi è responsabile della gestione degli eventi in ingresso in base alla specifica Web PubSub CloudEvents.

Eseguire l'endpoint del gestore eventi in locale

Quando il gestore eventi viene eseguito in locale, il server locale non è accessibile pubblicamente.

Esistono due modi per instradare il traffico a localhost, uno consiste nell'esporre localhost per essere accessibile su Internet usando strumenti come ngrok, localtunnel o TunnelRelay. Un altro modo, e anche il modo consigliato consiste nell'usare awps-tunnel per eseguire il tunneling del traffico dal servizio Web PubSub attraverso lo strumento al server locale.

Lo strumento di tunnel locale Web PubSub, sotto il cofano, stabilisce diverse connessioni tunnel persistenti (lo consideriamo come un tipo di connessioni server) al servizio Web PubSub. Ogni volta che si verifica un evento, il servizio Web PubSub indirizza il messaggio di evento attraverso la connessione tunnel allo strumento tunnel locale e lo strumento tunnel locale riforma la richiesta HTTP e invia la richiesta al server upstream.

Lo strumento tunnel locale offre una visualizzazione vivida del flusso di lavoro tramite una pagina webview. La visualizzazione Web per impostazione predefinita è in ascolto sulla porta locale ed è possibile personalizzare la porta upstream port + 1000webview usando il parametro di --webviewPort <your-custom-port>comando .

La visualizzazione Web contiene quattro schede:

  • La scheda Client fornisce un client WebSocket di test per connettere Il PubSub Web e inviare i dati.
  • La scheda Web PubSub fornisce le informazioni di base sul servizio Web PubSub e incorpora la pagina Di traccia live, se abilitata.
  • La scheda Tunnel locale elenca tutte le richieste che passano attraverso lo strumento tunnel locale al server locale.
  • La scheda Server mostra le informazioni di base sul server locale. Fornisce anche un server echo predefinito con codice simile al codice di esempio illustrato di seguito.

Screenshot che mostra l'ispezione del traffico.

Seguire Sviluppo con lo strumento tunnel locale per installare ed eseguire lo strumento tunnel in locale per sviluppare il server del gestore eventi in locale.

Eseguire il debug online dell'endpoint del gestore eventi

In alcuni casi potrebbero verificarsi problemi durante l'invio di eventi a un gestore eventi configurato upstream. Un tipo di errore tipico è correlato a un errore di protezione impropria, ad esempio , AbuseProtectionResponseInvalidStatusCodeAbuseProtectionResponseMissingAllowedOrigino AbuseProtectionResponseFailed. Un errore di questo tipo è probabilmente correlato alle impostazioni del server app upstream, ad esempio il codice di stato 403 potrebbe essere correlato alla configurazione dell'autenticazione del server app, il codice di stato 404 potrebbe essere causato dalla configurazione del percorso del gestore eventi incoerente. Un modo per risolvere questo errore consiste nell'inviare una richiesta di protezione impropria all'URL del gestore eventi configurato per verificare se funziona, ad esempio, usando il curl comando per inviare una richiesta di protezione impropria all'URL https://abc.web.com/eventhandler del gestore eventi configurato è il seguente:

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

Il comando deve restituire 204.

Passaggi successivi

Usare queste risorse per iniziare a creare un'applicazione personalizzata: