Share via


Como solucionar problemas e depurar o manipulador de eventos Azure Web PubSub

Quando uma conexão WebSocket se conecta ao serviço Web PubSub, o serviço formula uma solicitação HTTP POST para o upstream registrado e espera uma resposta HTTP. Chamamos o upstream como o manipulador de eventos e o manipulador de eventos é responsável por manipular os eventos de entrada seguindo a especificação Web PubSub CloudEvents.

Execute o ponto de extremidade do manipulador de eventos localmente

Quando o manipulador de eventos é executado localmente, o servidor local não é acessível publicamente.

Há duas maneiras de rotear o tráfego para seu localhost, uma é expor localhost para ser acessível na internet usando ferramentas como ngrok, localtunnel ou TunnelRelay. Outra maneira, e também a maneira recomendada é usar awps-tunnel para túnel o tráfego do serviço Web PubSub através da ferramenta para o seu servidor local.

A ferramenta de túnel local Web PubSub, sob o capô, estabelece várias conexões de túnel persistentes (consideramos como um tipo de conexões de servidor) para o serviço Web PubSub. Sempre que um evento chega, o serviço Web PubSub roteia a mensagem do evento através da conexão do túnel para a ferramenta de túnel local, e a ferramenta de túnel local reforma a solicitação HTTP e envia a solicitação para o servidor upstream.

A ferramenta de túnel local fornece uma visão vívida do fluxo de trabalho por meio de uma página de exibição da web. O webview por padrão escuta na porta upstream port + 1000local e você pode personalizar a porta webview usando o parâmetro --webviewPort <your-custom-port>de comando .

A vista Web contém quatro separadores:

  • Guia Cliente , ele fornece um cliente WebSocket de teste para conectar o Web PubSub e enviar dados.
  • Guia Web PubSub , ele fornece as informações básicas sobre seu serviço Web PubSub e incorpora a página Live Trace, se habilitado.
  • Guia Túnel Local , ele lista todas as solicitações que passam pela ferramenta de túnel local para o seu servidor local.
  • Guia Servidor , ele mostra as informações básicas sobre seu servidor local. Ele também fornece um servidor de eco embutido com código semelhante ao código de exemplo mostrado abaixo dele.

Captura de tela mostrando a inspeção de tráfego.

Siga Desenvolver com a ferramenta de túnel local para instalar e executar a ferramenta de túnel localmente para desenvolver seu servidor manipulador de eventos localmente.

Depurar o ponto de extremidade do manipulador de eventos online

Às vezes, você pode ter problemas para enviar eventos para um manipulador de eventos configurado upstream. Um tipo de erro típico está relacionado a falha de proteção contra abuso, por exemplo, AbuseProtectionResponseInvalidStatusCode, AbuseProtectionResponseMissingAllowedOriginou AbuseProtectionResponseFailed. Esse erro provavelmente está relacionado às configurações do servidor de aplicativos upstream, por exemplo, o código de status 403 pode estar relacionado à configuração de autenticação do servidor de aplicativos, o código de status 404 pode ser causado pela configuração inconsistente do caminho do manipulador de eventos. Uma maneira de solucionar essa falha é enviar uma solicitação de proteção contra abuso para a URL do manipulador de eventos configurado para ver se ela funciona, por exemplo, usar curl o comando para enviar uma solicitação de proteção contra abuso para a URL https://abc.web.com/eventhandler do manipulador de eventos configurado é a seguinte:

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

O comando deve retornar 204.

Próximos passos

Use estes recursos para começar a criar seu próprio aplicativo: