Compartir vía


Solución de problemas y depuración del controlador de eventos de Azure Web PubSub

Cuando una conexión WebSocket se conecta al servicio Web PubSub, el servicio formula una solicitud HTTP POST al canal ascendente registrado y espera una respuesta HTTP. Llamamos al canal ascendente como controlador de eventos y el controlador de eventos es responsable de controlar los eventos entrantes siguiendo la especificación de CloudEvents de Web PubSub.

Ejecución local del punto de conexión del controlador de eventos

Cuando el controlador de eventos se ejecuta localmente, el servidor local no es accesible públicamente.

Hay dos maneras de enrutar el tráfico a su localhost, uno consiste en exponer localhost para que sea accesible en Internet mediante herramientas como ngrok, localtunnelo TunnelRelay. Otra manera, y también recomendable, es usar awps-tunnel para tunelizar el tráfico desde el servicio Web PubSub a través de la herramienta hasta tu servidor local.

La herramienta de túnel local de Web PubSub, en segundo plano, establece varias conexiones de túnel persistentes (lo consideramos como un tipo de conexiones de servidor) al servicio Web PubSub. Cada vez que se produzca un evento, el servicio Web PubSub enruta el mensaje de evento a través de la conexión de túnel a la herramienta de túnel local y la herramienta túnel local reforma la solicitud HTTP y envía la solicitud al servidor ascendente.

La herramienta de túnel local proporciona una vista vívida del flujo de trabajo a través de una página de vista web. La vista web escucha de manera predeterminada en el puerto local upstream port + 1000, y puede personalizar el puerto de vista web mediante el parámetro de comando --webviewPort <your-custom-port>.

La vista web contiene cuatro pestañas:

  • La pestaña Cliente, proporciona un cliente WebSocket de prueba para conectar el Web PubSub y enviar datos.
  • La pestañaWeb PubSub proporciona la información básica sobre el servicio Web PubSub e inserta la página Seguimiento en directo si está habilitada.
  • La pestañaTúnel local muestra todas las solicitudes que pasan por la herramienta de túnel local al servidor local.
  • La pestañaServidor muestra la información básica sobre el servidor local. También proporciona un servidor de eco integrado con código similar al código de ejemplo que se muestra a continuación.

Captura de pantalla de la visualización de la inspección del tráfico.

Siga Desarrollo con la herramienta de túnel local para instalar y ejecutar la herramienta de túnel localmente para desarrollar el servidor del controlador de eventos localmente.

Depuración del punto de conexión del controlador de eventos en línea

A veces, es posible que tenga problemas al enviar eventos a un controlador de eventos configurado de nivel superior. Un tipo de error típico está relacionado con un error de protección contra abusos, por ejemplo, AbuseProtectionResponseInvalidStatusCode, AbuseProtectionResponseMissingAllowedOrigin, o AbuseProtectionResponseFailed. Este error probablemente esté relacionado con la configuración del servidor de aplicaciones ascendente, por ejemplo, el código de estado 403 podría estar relacionado con la configuración de autenticación del servidor de aplicaciones, el código de estado 404 podría deberse a una configuración de ruta de acceso del controlador de eventos incoherente. Una manera de solucionar este error es enviar una solicitud de protección contra abusos a la dirección URL del controlador de eventos configurado para ver si funciona, por ejemplo, mediante el comando curl para enviar una solicitud de protección contra abusos a la dirección URL del controlador de eventos configuradohttps://abc.web.com/eventhandler es la siguiente:

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

El comando debe devolver 204.

Pasos siguientes

Use estos recursos para empezar a compilar su propia aplicación: