Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di
Apigee Edge.
Questo argomento descrive come utilizzare WebSockets con Apigee e Apigee Hybrid.
Introduzione
Esistono molte situazioni in cui le interazioni web devono avvenire in tempo reale, ad esempio giochi, comunicazioni, transazioni finanziarie e altre attività ad alto rendimento.
WebSocket è un protocollo che fornisce un canale di comunicazione full-duplex tra un client web e un server web su una singola connessione TCP. Il protocollo WebSocket utilizza il protocollo HTTP per stabilire la connessione tra il client e il server. Una volta stabilita, il client e il server utilizzano il protocollo WebSocket per inviare e ricevere dati.
La specifica e il protocollo WebSockets sono gestiti dal W3C.
Supporto per WebSocket in Apigee
In Apigee e Apigee hybrid, i gruppi di ambienti forniscono il routing agli ambienti e definiscono i nomi host su cui vengono esposti i proxy API. I gruppi di ambienti supportano in modo nativo i protocolli HTTP e WS. Non devi creare un gruppo di ambienti speciale o una configurazione speciale per utilizzare i WebSocket.
Spetta al client richiedere l'upgrade del protocollo da HTTP a WS includendo l'intestazione della richiesta Upgrade. Quando viene effettuata una richiesta di upgrade a un proxy API connesso a un backend WebSocket valido, la destinazione restituisce una risposta 101 Switching Protocols. Ulteriori richieste e risposte
vengono effettuate in modo bidirezionale sulla connessione WebSockets aperta, finché non viene
chiusa.
Assistenza per le norme
Tutti i criteri funzioneranno in un proxy WebSocket finché l'handshake non sarà completato
(ovvero finché la risposta HTTP 101 non verrà restituita al client).
Dopodiché, non verrà eseguito alcun criterio, ma i token OAuth convalidati prima dell'handshake vengono comunque rispettati e la connessione si interrompe alla scadenza o alla revoca del token.
Revoca della connessione
La connessione WebSocket viene chiusa quando:
- L'endpoint proxy riceve una richiesta senza una chiave API o un token OAuth.
- L'endpoint proxy riceve una richiesta con una chiave API scaduta o non valida o un token OAuth.
- Timeout della connessione WebSocket.
Utilizzare il debug e l'analisi
Nello strumento di debug, per ogni connessione WebSocket vedrai una richiesta con uno stato 101.
Nella dashboard di analisi di Apigee, vedrai il traffico conteggiato per ogni sessione WebSocket. Il traffico bidirezionale che si verifica durante la sessione non viene visualizzato nella dashboard.
Applicazione WebSocket di esempio
Per saperne di più, puoi consultare un'applicazione websocket-sample funzionante su GitHub. L'esempio mostra come chiamare un proxy API tramite una connessione WebSocket. Il proxy chiama una semplice applicazione di destinazione di backend di cui è stato eseguito il deployment nel cluster Kubernetes.