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 und keine 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
Alle Richtlinien funktionieren in einem Web-Socket-Proxy, bis der Handshake abgeschlossen ist (d.h. bis die Antwort HTTP 101
an den Client zurückgegeben wird), danach wird keine Richtlinie ausgeführt, aber OAuth-Tokens wurden vor dem Handshake wird weiterhin berücksichtigt und die Verbindung wird unterbrochen, wenn das Token abläuft oder widerrufen wird.
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:
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.