Utilisation WebSockets avec les CloudFront distributions - Amazon CloudFront

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation WebSockets avec les CloudFront distributions

Amazon CloudFront prend en charge l'utilisation WebSocket d'un protocole TCP basé qui est utile lorsque vous avez besoin de connexions bidirectionnelles de longue durée entre les clients et les serveurs. Une connexion persistante est souvent une exigence avec des applications en temps réel. Les scénarios que vous pouvez utiliser WebSockets incluent les plateformes de chat social, les espaces de travail collaboratifs en ligne, les jeux multijoueurs et les services fournissant des flux de données en temps réel, tels que les plateformes de trading financier. Les données via une WebSocket connexion peuvent circuler dans les deux sens pour une communication en duplex intégral.

WebSocket la fonctionnalité est automatiquement activée pour fonctionner avec n'importe quelle distribution. Pour l'utiliser WebSockets, configurez l'une des options suivantes dans le comportement du cache associé à votre distribution :

  • Transférez tous les en-têtes des demandes des visiteurs vers votre source. (Vous pouvez utiliser la politique de AllViewer gestion des demandes d'origine.)

  • Transférez spécifiquement les en-têtes de Sec-WebSocket-Version demande Sec-WebSocket-Key et dans votre politique de demande d'origine.

Comment fonctionne le WebSocket protocole

Le WebSocket protocole est un protocole indépendant qui vous permet d'éviter une partie des frais généraux (et potentiellement une latence accrue) de. TCP HTTP

Pour établir une WebSocket connexion, le client envoie une HTTP demande régulière qui utilise HTTP la sémantique de mise à niveau pour modifier le protocole. Le serveur peut ensuite terminer la liaison. La WebSocket connexion reste ouverte et le client ou le serveur peuvent s'envoyer des trames de données sans avoir à établir de nouvelles connexions à chaque fois.

Par défaut, le WebSocket protocole utilise le port 80 pour les WebSocket connexions régulières et le port 443 pour WebSocket les connexions viaTLS/SSL. Les options que vous choisissez pour votre CloudFront Viewer Protocol Policy et que vous Protocole (origines personnalisées uniquement) appliquez aux WebSocket connexions ainsi qu'au HTTP trafic.

WebSocketexigences

WebSocket les demandes doivent être conformes à la norme RFC6455 dans les formats standard suivants.

Exemple de requête du 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

Exemple de réponse du serveur :

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

Si la WebSocket connexion est déconnectée par le client ou le serveur, ou en raison d'une interruption du réseau, les applications clientes sont censées rétablir la connexion avec le serveur.

WebSocket En-têtes recommandés

Afin d'éviter des problèmes inattendus liés à la compression lors de l'utilisation WebSockets, nous vous recommandons d'inclure les en-têtes suivants dans une politique de demande d'origine :

  • Sec-WebSocket-Key

  • Sec-WebSocket-Version

  • Sec-WebSocket-Protocol

  • Sec-WebSocket-Accept

  • Sec-WebSocket-Extensions