Utilizzo di WebSocket

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:

Richiesta con stato 101 nello strumento di debug.

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.