Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.
Questo argomento illustra 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à che richiedono una velocità effettiva elevata.
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 client e server. Una volta stabiliti, il client e il server utilizzano il protocollo WebSocket per inviare e ricevere dati.
Le specifiche WebSocket 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 sono esposti i proxy API. I gruppi di ambienti supportano entrambi i protocolli HTTP e WS in modo nativo. Non è necessario creare un gruppo di ambienti speciale o configurazioni speciali per utilizzare WebSocket. Spetta invece 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 WebSockets aperta, fino a quando non viene chiusa.
Assistenza per le norme
Con una connessione WebSocket, puoi utilizzare solo i criteri Verifica chiave API e OAuthV2 nel proxy API. Tutti gli altri criteri vengono ignorati.
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, scaduti o non validi.
- Timeout della connessione WebSocket.
Utilizzo di traccia e analisi
Nello strumento di debug, per ogni connessione WebSocket, vedrai una richiesta con uno stato 101, come mostrato nello screenshot seguente:
Nella dashboard di analisi di Apigee, il traffico verrà conteggiato per ogni sessione WebSocket. Il traffico avanti e indietro che si verifica durante la sessione non viene visualizzato nella dashboard.
Applicazione WebSocket di esempio
Per saperne di più, puoi fare riferimento a un'applicazione websocket-sample funzionante su GitHub. L'esempio mostra come chiamare un proxy API su una connessione WebSocket. Il proxy chiama una semplice applicazione di destinazione del backend di cui è stato eseguito il deployment nel cluster Kubernetes.