Udostępnij za pośrednictwem


Jak rozwiązywać problemy i debugować procedurę obsługi zdarzeń usługi Azure Web PubSub

Gdy połączenie protokołu WebSocket łączy się z usługą Web PubSub, usługa formułuje żądanie HTTP POST do zarejestrowanego nadrzędnego strumienia i oczekuje odpowiedzi HTTP. Wywołujemy nadrzędny element jako procedurę obsługi zdarzeń, a program obsługi zdarzeń jest odpowiedzialny za obsługę zdarzeń przychodzących zgodnie ze specyfikacją Web PubSub CloudEvents.

Lokalne uruchamianie punktu końcowego programu obsługi zdarzeń

Gdy program obsługi zdarzeń jest uruchamiany lokalnie, serwer lokalny nie jest publicznie dostępny.

Istnieją dwa sposoby kierowania ruchu do hosta lokalnego. Jednym z nich jest udostępnienie hosta lokalnego w Internecie za pomocą narzędzi, takich jak ngrok, localtunnel lub TunnelRelay. Innym sposobem, a także zalecanym sposobem jest użycie tunelu awps-tunnel do tunelowania ruchu z usługi Web PubSub za pośrednictwem narzędzia do serwera lokalnego.

Lokalne narzędzie tunelu Web PubSub, pod maską, ustanawia kilka trwałych połączeń tunelu (uważamy go za jeden typ połączeń serwera) z usługą Web PubSub. Za każdym razem, gdy wystąpi zdarzenie, usługa Web PubSub kieruje komunikat zdarzenia przez połączenie tunelu z lokalnym narzędziem tunelu, a lokalne narzędzie tunelu reformuje żądanie HTTP i wysyła żądanie do serwera nadrzędnego.

Narzędzie tunelu lokalnego zapewnia żywy widok przepływu pracy za pośrednictwem strony widoku internetowego. Widok internetowy domyślnie nasłuchuje na porcie upstream port + 1000lokalnym i można dostosować port webview przy użyciu parametru --webviewPort <your-custom-port>polecenia .

Widok internetowy zawiera cztery karty:

  • Karta Klient udostępnia testowego klienta protokołu WebSocket w celu nawiązania połączenia z usługą Web PubSub i wysyłania danych.
  • Karta Web PubSub zawiera podstawowe informacje o usłudze Web PubSub i osadza stronę śledzenia na żywo, jeśli jest włączona.
  • Karta Tunel lokalny zawiera listę wszystkich żądań przechodzących przez narzędzie tunelu lokalnego do serwera lokalnego.
  • Karta Serwer zawiera podstawowe informacje o serwerze lokalnym. Udostępnia on również wbudowany serwer echo z kodem podobnym do przykładowego kodu pokazanego poniżej.

Zrzut ekranu przedstawiający inspekcję ruchu.

Postępuj zgodnie z instrukcjami Programowanie za pomocą lokalnego narzędzia tunelowania, aby zainstalować i uruchomić narzędzie tunelu lokalnie, aby utworzyć serwer obsługi zdarzeń lokalnie.

Debugowanie punktu końcowego procedury obsługi zdarzeń w trybie online

Czasami mogą wystąpić problemy z wysyłaniem zdarzeń do skonfigurowanego programu obsługi zdarzeń nadrzędnych. Jeden z typowych typów błędów jest związany z niepowodzeniem ochrony przed nadużyciami, na przykład , AbuseProtectionResponseInvalidStatusCodeAbuseProtectionResponseMissingAllowedOriginlub AbuseProtectionResponseFailed. Taki błąd jest prawdopodobnie związany z ustawieniami nadrzędnego serwera aplikacji, na przykład kod stanu 403 może być związany z konfiguracją uwierzytelniania serwera aplikacji, kod stanu 404 może być spowodowany niespójną konfiguracją ścieżki obsługi zdarzeń. Jednym ze sposobów rozwiązywania takich problemów jest wysłanie żądania ochrony nadużyć do skonfigurowanego adresu URL procedury obsługi zdarzeń, aby sprawdzić, czy działa, na przykład za pomocą curl polecenia w celu wysłania żądania ochrony nadużyć do skonfigurowanego adresu URL https://abc.web.com/eventhandler procedury obsługi zdarzeń jest następujący:

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

Polecenie powinno zwrócić wartość 204.

Następne kroki

Użyj tych zasobów, aby rozpocząć tworzenie własnej aplikacji: