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 lidar com 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 está acessível publicamente.
Existem duas maneiras de rotear o tráfego para seu host local, uma é expor o host local para ser acessível na Internet usando ferramentas como ngrok, localtunnel, ou TunnelRelay. Outra forma, e também a recomendada, é usar awps-tunnel para encapsular 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, nos bastidores, estabelece várias conexões de túnel persistentes (consideramos isso como um tipo de conexão 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 de 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 seu servidor upstream.
A ferramenta de túnel local fornece uma visão nítida do fluxo de trabalho por meio de uma página de visualização na web. O webview por padrão escuta na porta local upstream port + 1000
, e você pode personalizar a porta do webview usando o parâmetro de comando --webviewPort <your-custom-port>
.
O webview contém quatro guias:
- Guia Cliente, fornece um cliente WebSocket de teste para conectar o Web PubSub e enviar dados.
- Guia Web PubSub, ela fornece as informações básicas sobre seu serviço Web PubSub e incorpora a página Live Trace, se habilitada.
- Guia Local Tunnel, ela lista todas as solicitações que passam pela ferramenta de túnel local para o seu servidor local.
- Guia Servidor, mostra as informações básicas sobre o seu servidor local. Ele também fornece um servidor de eco integrado com código semelhante ao código de exemplo mostrado abaixo.
Siga Desenvolver com ferramenta de túnel local para instalar e executar a ferramenta de túnel localmente para desenvolver seu servidor manipulador de eventos localmente.
Depure o ponto de extremidade do manipulador de eventos online
Às vezes, você pode ter problemas ao enviar eventos para um upstream do manipulador de eventos configurado. Um tipo de erro típico está relacionado à falha na proteção contra abuso, por exemplo, AbuseProtectionResponseInvalidStatusCode
, AbuseProtectionResponseMissingAllowedOrigin
, ou 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 por 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 o URL do manipulador de eventos configurado para ver se funciona, por exemplo, usando o comando curl
para enviar uma solicitação de proteção contra abuso para o URL do manipulador de eventos configurado https://abc.web.com/eventhandler
como abaixo:
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óximas etapas
Use estes recursos para começar a criar seu aplicativo: