WebSockets verwenden

Diese Seite gilt für Apigee und Apigee Hybrid.

Apigee Edge-Dokumentation aufrufen

In diesem Thema wird erläutert, wie Sie WebSockets mit Apigee und Apigee Hybrid verwenden.

Einführung

Es gibt viele Situationen, in denen Webinteraktionen in Echtzeit stattfinden müssen, z. B. Spiele, Kommunikation, Finanztransaktionen und andere Aktivitäten mit hohem Durchsatz.

WebSocket ist ein Protokoll zur Bereitstellung eines Vollduplex-Kommunikationskanals zwischen einem Webclient und einem Webserver über eine einzelne TCP-Verbindung. Das WebSocket-Protokoll verwendet das HTTP-Protokoll, um die Verbindung zwischen Client und Server herzustellen. Der Client und der Server verwenden dann das WebSocket-Protokoll, um Daten zu senden und zu empfangen.

Die WebSockets-Spezifikation und das Protokoll werden vom W3C verwaltet.

Unterstützung für WebSockets in Apigee

In Apigee und Apigee Hybrid bieten Umgebungsgruppen Routing zu Umgebungen und definieren die Hostnamen, unter denen API-Proxys zugänglich sind. Umgebungsgruppen unterstützen sowohl das HTTP- als auch das WS-Protokoll nativ. Zur Verwendung von WebSockets müssen Sie keine spezielle Umgebungsgruppe oder eine spezielle Konfiguration erstellen. Stattdessen muss der Client über den Anfrageheader Upgrade ein Protokollupgrade von HTTP auf WS anfordern. Eine Upgradeanfrage an einen API-Proxy-Endpunkt gibt eine 101 Switching Protocols-Antwort zurück. Weitere Anfragen und Antworten erfolgen bidirektional über die offene WebSockets-Verbindung, bis sie geschlossen wird.

Richtlinienunterstützung

Mit einer WebSockets-Verbindung können Sie nur die Richtlinien „API-Schlüssel prüfen” und „OAuthV2” in Ihrem API-Proxy verwenden. Alle anderen Richtlinien werden ignoriert.

Die Verbindung widerrufen

Die WebSockets-Verbindung wird in folgenden Fällen geschlossen:

  • Der Proxy-Endpunkt empfängt eine Anfrage ohne API-Schlüssel oder OAuth-Token.
  • Der Proxy-Endpunkt empfängt eine Anfrage mit einem abgelaufenen oder ungültigen API-Schlüssel oder OAuth-Token.
  • Die WebSockets-Verbindung wird wegen Zeitüberschreitung beendet.

Trace und Analyse verwenden

Im Debugging-Tool wird für jede WebSockets-Verbindung eine Anfrage mit einem 101-Status angezeigt, wie im folgenden Screenshot dargestellt:

Anfrage mit dem Status 101 im Debug-Tool

Im Apigee-Analyse-Dashboard sehen Sie den Traffic für jede WebSockets-Sitzung. Traffic, der während der Sitzung auftritt, wird nicht im Dashboard angezeigt.

WebSockets-Beispielanwendung

Weitere Informationen finden Sie in einer funktionierenden websocket-sample-Anwendung auf GitHub. Das Beispiel zeigt, wie ein API-Proxy über eine WebSocket-Verbindung aufgerufen wird. Der Proxy ruft eine einfache Back-End-Zielanwendung auf, die in Ihrem Kubernetes-Cluster bereitgestellt wird.