Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di
Apigee Edge.
Questo argomento spiega 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 WebSockets e il protocollo 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 un upgrade del protocollo da HTTP a WS includendo l'intestazione della richiesta Upgrade
. Una richiesta di upgrade
effettuata a un endpoint proxy API restituisce una risposta 101 Switching Protocols
. Ulteriori richieste
e risposte vengono effettuate in modo bidirezionale sulla connessione WebSocket aperta, finché non viene chiusa.
Assistenza per le norme
Tutti i criteri funzioneranno in un proxy WebSocket fino al completamento dell'handshake
(ovvero fino a quando la risposta HTTP 101
non viene restituita al client),
dopodiché non verrà eseguito alcun criterio, ma i token OAuth convalidati prima dell'handshake
verranno comunque rispettati e la connessione verrà interrotta se il token scade o
viene revocato.
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 o un token OAuth scaduto o non valido.
- Timeout della connessione WebSocket.
Utilizzare il debug e l'analisi
Nello strumento di debug, per ogni connessione WebSockets viene visualizzata una richiesta con uno stato 101.
Nella dashboard di analisi di Apigee, vedrai il traffico conteggiato per ogni sessione WebSockets. 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.