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 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 TCP indépendant qui vous permet d'éviter une partie de la surcharge (voire une latence accrue) du protocole HTTP.

Pour établir une WebSocket connexion, le client envoie une requête HTTP normale qui utilise la sémantique de mise à niveau du protocole HTTP 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 les WebSocket connexions via TLS/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 trafic HTTP.

WebSocketexigences

WebSocket les demandes doivent être conformes à la RFC 6455 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