Udostępnij za pośrednictwem


Importowanie interfejsu API protokołu WebSocket

DOTYCZY: Deweloper | Podstawowa | Podstawowa wersja 2 | Standardowa | Standardowa wersja 2 | Premium | Premium wersja 2

Dzięki rozwiązaniu API WebSocket w Azure API Management wydawcy API mogą szybko dodawać API protokołu WebSocket w Azure API Management przy użyciu Azure Portal, Azure CLI, Azure PowerShell i innych narzędzi platformy Azure.

Interfejsy API protokołu WebSocket można zabezpieczyć, stosując zasady kontroli dostępu usługi API Management do początkowej operacji uzgadniania. Możesz również przetestować interfejsy API protokołu WebSocket przy użyciu konsol testowych interfejsu API w witrynie Azure Portal i portalu dla deweloperów. Korzystając z istniejących możliwości obserwacji, usługa API Management udostępnia metryki i dzienniki na potrzeby monitorowania i rozwiązywania problemów z interfejsami API protokołu WebSocket.

W tym artykule dowiesz się, jak:

  • Omówienie przepływu przekazywania protokołu WebSocket.
  • Dodaj interfejs API protokołu WebSocket do wystąpienia usługi API Management.
  • Przetestuj API WebSocket.
  • Wyświetl metryki i dzienniki dla interfejsu WebSocket API.
  • Poznaj ograniczenia interfejsu API protokołu WebSocket.

Wymagania wstępne

Przekazywanie protokołu WebSocket

Usługa API Management obsługuje przechodzenie przez protokół WebSocket.

Podczas przekazywania protokołu WebSocket aplikacja kliencka ustanawia połączenie protokołu WebSocket z bramą usługi API Management, która następnie nawiązuje połączenie z odpowiednimi usługami zaplecza. Usługa API Management następnie pośredniczy w komunikacji klient-serwer za pośrednictwem protokołu WebSocket.

Diagram przedstawiający przepływ przekazywania protokołu WebSocket.

  1. Aplikacja klienta wysyła żądanie handshake WebSocket do gateway, wywołując operację onHandshake.
  2. Bramka zarządzania API stosuje skonfigurowane zasady i wysyła żądania uzgadniania protokołu WebSocket do odpowiedniej usługi backendowej.
  3. Usługa zaplecza uaktualnia połączenie z usługą WebSocket.
  4. Brama uaktualnia odpowiednie połączenie do protokołu WebSocket.
  5. Po ustanowieniu połączenia, API Management pośredniczy w wymianie komunikatów tam i z powrotem między aplikacją kliencką a usługą zaplecza.
  6. Aplikacja kliencka wysyła komunikat do bramy.
  7. Brama przekazuje komunikat do usługi zaplecza.
  8. Usługa zaplecza wysyła komunikat do bramy.
  9. Brama przekazuje komunikat do aplikacji klienckiej.
  10. Po rozłączeniu obu stron usługa API Management kończy odpowiednie połączenie.

Uwaga

Połączenia typu klient-zaplecze składają się z mapowań jeden do jednego. Tej samej sesji protokołu WebSocket nie można dystrybuować między wieloma zapleczami.

operacja onHandshake

Zgodnie z protokołem WebSocket, gdy aplikacja kliencka próbuje ustanowić połączenie WebSocket z serwerem zaplecza, najpierw wysyła żądanie otwierającego uścisku dłoni.

Każdy interfejs WebSocket API w usłudze API Management ma operację onHandshake. onHandshake to niezmienna, niezmienialna, automatycznie utworzona operacja systemowa. Operacja onHandshake umożliwia wydawcom API przechwytywanie tych żądań uzgadniania i stosowanie zasad zarządzania API do nich.

Zrzut ekranu przedstawiający przykład ekranu onHandshake.

Dodawanie interfejsu API protokołu WebSocket

  1. W portalu Azure przejdź do instancji usługi API Management.

  2. W menu paska bocznego wybierz pozycję Interfejsy> API+ Dodaj interfejs API.

  3. W obszarze Definiowanie nowego interfejsu API wybierz kafelek WebSocket .

  4. W oknie dialogowym wybierz pozycję Pełne i wypełnij wymagane pola formularza.

    Pole opis
    Nazwa wyświetlana Nazwa wyświetlana interfejsu API protokołu WebSocket.
    Nazwisko Nazwa bazowa interfejsu API protokołu WebSocket. Automatycznie wypełniana podczas wpisywania nazwy wyświetlanej.
    WebSocket URL Podstawowy adres URL z nazwą twojego websocketu. Na przykład: ws://example.com/your-socket-name
    Schemat adresu URL Zaakceptuj domyślne.
    Sufiks adresu URL interfejsu API Dodaj sufiks adresu URL, aby zidentyfikować ten konkretny interfejs API w tym wystąpieniu usługi API Management. Musi być unikatowa w tej instancji API Management.
    Produkty Skojarz API WebSocket z produktem, aby je opublikować.
    Bramki Połącz interfejs API protokołu WebSocket z istniejącymi bramami. Bramy hostowane samodzielnie są dostępne tylko w warstwach Deweloper i Premium.
  5. Wybierz Utwórz.

Przetestuj API WebSocket

  1. Przejdź do API WebSocket.

  2. W interfejsie API protokołu WebSocket wybierz operację onHandshake.

  3. Wybierz kartę Test, aby uzyskać dostęp do konsoli testowej.

  4. Opcjonalnie podaj parametry ciągu zapytania wymagane do uzgadniania protokołu WebSocket.

    Zrzut ekranu przedstawiający opcje testowania interfejsu API.

  5. Wybierz Połącz.

  6. Wyświetl stan połączenia w danych wyjściowych.

  7. Wprowadź wartość w Payload.

  8. Wybierz Wyślij.

  9. Wyświetl odebrane komunikaty w danych wyjściowych.

  10. Powtórz powyższe kroki, aby przetestować różne ładunki.

  11. Po zakończeniu testowania wybierz pozycję Rozłącz.

Wyświetl metryki i dzienniki

Użyj standardowych funkcji Zarządzania interfejsami API i Azure Monitor w celu monitorowania interfejsów API protokołu WebSocket:

  • Przeglądaj metryki API w Azure Monitor
  • Opcjonalnie włącz ustawienia diagnostyczne, aby zbierać i wyświetlać dzienniki bramki zarządzania API, które obejmują operacje API protokołu WebSocket lub dzienniki połączeń WebSocket.

Na przykład poniższy zrzut ekranu przedstawia ostatnie odpowiedzi interfejsu API protokołu WebSocket z kodem 101 z tabeli ApiManagementGatewayLogs. Te wyniki wskazują na pomyślne przełączenie żądań z protokołu TCP do protokołu WebSocket.

Zrzut ekranu przedstawiający dzienniki zapytań dla żądań interfejsu API protokołu WebSocket.

Ograniczenia

Poniżej przedstawiono bieżące ograniczenia obsługi protokołu WebSocket w usłudze API Management:

  • API WebSocket nie są jeszcze obsługiwane w warstwie konsumpcyjnej.
  • Interfejsy API protokołu WebSocket obsługują następujące dozwolone typy buforów dla komunikatów: Close, BinaryFragment, BinaryMessage, UTF8Fragment i UTF8Message.
  • Obecnie polityka set-header nie obsługuje zmiany niektórych dobrze znanych nagłówków, w tym także nagłówków takich jak Host, w żądaniach onHandshake.
  • Podczas nawiązywania połączenia TLS z backendem WebSocket, API Management sprawdza, czy certyfikat serwera jest zaufany i czy jego nazwa podmiotu jest zgodna z nazwą hosta. Za pomocą interfejsów API HTTP usługa API Management sprawdza, czy certyfikat jest zaufany, ale nie sprawdza zgodności nazwy hosta i podmiotu.
  • Połączeń protokołu WebSocket nie można dystrybuować ani równoważyć obciążenia między wieloma zapleczami, ponieważ po ustanowieniu każde połączenie jest utrzymywane jeden do jednego między klientem a zapleczem.

Aby uzyskać informacje o limitach połączeń protokołu WebSocket, zobacz Limity usługi API Management.

Nieobsługiwane zasady

Następujące zasady nie są obsługiwane przez program i nie można ich zastosować do operacji onHandshake:

  • Symulowana odpowiedź
  • Pobierz z pamięci podręcznej
  • Zapisz w pamięci podręcznej
  • Zezwalaj na wywołania między domenami
  • CORS
  • JSONP
  • Ustawianie metody żądania
  • Ustaw tekst
  • Konwertuj format XML na JSON
  • Konwertuj format JSON na XML
  • Przekształcanie kodu XML przy użyciu języka XSLT
  • Weryfikowanie zawartości
  • Weryfikowanie parametrów
  • Weryfikowanie nagłówków
  • Weryfikowanie kodu stanu

Uwaga

Jeśli zasady zostały zastosowane w wyższych zakresach (na przykład globalnym lub produktowym) i są dziedziczone przez interfejs API protokołu WebSocket w ramach tych zasad, zostaną pominięte w czasie wykonywania.