Utilizzare WebSockets con le distribuzioni CloudFront - Amazon CloudFront

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzare WebSockets con le distribuzioni CloudFront

Amazon CloudFront supporta l'utilizzo WebSocket di un protocollo basato su TCP utile quando sono necessarie connessioni bidirezionali di lunga durata tra client e server. Una connessione permanente è spesso un requisito con applicazioni in tempo reale. Gli scenari in cui potresti utilizzare WebSockets includono piattaforme di social chat, spazi di lavoro per la collaborazione online, giochi multigiocatore e servizi che forniscono feed di dati in tempo reale come piattaforme di trading finanziario. I dati tramite una WebSocket connessione possono fluire in entrambe le direzioni per una comunicazione full-duplex.

WebSocket la funzionalità viene abilitata automaticamente per funzionare con qualsiasi distribuzione. Per WebSockets utilizzarla, configura uno dei seguenti comandi nel comportamento della cache associato alla tua distribuzione:

  • Inoltra tutte le intestazioni delle richieste dei visualizzatori alla tua origine. (Puoi utilizzare la politica di richiesta di origine AllViewer gestita.)

  • Inoltra in particolare le intestazioni Sec-WebSocket-Key and Sec-WebSocket-Version request nella tua policy di richiesta di origine.

Come funziona il WebSocket protocollo

Il WebSocket protocollo è un protocollo indipendente basato su TCP che consente di evitare il sovraccarico e il potenziale aumento della latenza di HTTP.

Per stabilire una WebSocket connessione, il client invia una richiesta HTTP regolare che utilizza la semantica di aggiornamento di HTTP per modificare il protocollo. Il server può quindi completare l'handshake. La WebSocket connessione rimane aperta e il client o il server possono scambiarsi frame di dati senza dover stabilire nuove connessioni ogni volta.

Per impostazione predefinita, il WebSocket protocollo utilizza la porta 80 per WebSocket le connessioni regolari e la porta 443 per WebSocket le connessioni tramite TLS/SSL. Le opzioni scelte si Protocollo (solo origini personalizzate) applicano alle WebSocket connessioni CloudFront Viewer Protocol Policy (Policy protocollo visualizzatore) e al traffico HTTP.

WebSocketrequisiti

WebSocket le richieste devono essere conformi alla RFC 6455 nei seguenti formati standard.

Esempio di richiesta client:

GET /chat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Origin: https://example.com Sec-WebSocket-Protocol: chat, superchat Sec-WebSocket-Version: 13

Esempio di risposta di server:

HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Sec-WebSocket-Protocol: chat

Se la WebSocket connessione viene interrotta dal client o dal server o a causa di un'interruzione della rete, è previsto che le applicazioni client riavviino la connessione con il server.

Intestazioni consigliate WebSocket

Per evitare problemi imprevisti legati alla compressione durante l'utilizzo WebSockets, ti consigliamo di includere le seguenti intestazioni in una policy di richiesta di origine:

  • Sec-WebSocket-Key

  • Sec-WebSocket-Version

  • Sec-WebSocket-Protocol

  • Sec-WebSocket-Accept

  • Sec-WebSocket-Extensions