Utilizzo di WebSocket

Questa pagina si applica a Apigee e Apigee ibridi.

Visualizza 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 verificarsi in tempo reale, ad esempio durante un gioco, comunicazioni, transazioni finanziarie e altre attività a velocità effettiva elevata.

WebSocket è un che fornisce un canale di comunicazione full-duplex tra un client web e un server web 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 stabilito, il cliente e utilizzare 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 e i nomi host su cui sono esposti i proxy API. I gruppi di ambienti supportano in modo nativo sia i protocolli HTTP che 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. È stata effettuata una richiesta di upgrade a un endpoint proxy API 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 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 WebSockets viene chiusa quando:

  • L'endpoint proxy riceve una richiesta senza chiave API o token OAuth.
  • L'endpoint proxy riceve una richiesta con una chiave API o un token OAuth scaduto o non valido.
  • La connessione WebSocket scade.

Utilizzo di tracce e analisi

Nello strumento di debug, per ogni connessione WebSocket viene visualizzata una richiesta con un 101 Status (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 WebSocket durante la sessione. 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.