Utilizzo di WebSocket

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 tramite una singola connessione TCP. Il protocollo WebSocket utilizza il protocollo HTTP per stabilire la connessione tra il client e il server. Una volta stabilita la connessione, 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 di 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 in modo nativo i protocolli HTTP e WS. Non è necessario creare un gruppo di ambienti speciale o alcuna configurazione speciale per utilizzare WebSocket. Spetta piuttosto 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 alla sua chiusura.

Assistenza per le norme

Tutti i criteri funzioneranno in un proxy web socket fino al completamento del 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 del handshake continueranno a essere rispettati e la connessione verrà interrotta se il token scade o viene revocato.

Revocare la 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.
  • La connessione WebSocket scade.

Utilizzo di traccia e analisi

Nello strumento di debug, per ogni connessione WebSocket viene visualizzata una richiesta con stato 101, come mostrato nello screenshot seguente:

Richiesta con stato 101 nello strumento di debug.

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 mostrato 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 tramite una connessione WebSockets. Il proxy chiama una semplice applicazione di destinazione di backend di cui è stato eseguito il deployment nel cluster Kubernetes.