Mit WebSockets Distributionen CloudFront verwenden - Amazon CloudFront

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Mit WebSockets Distributionen CloudFront verwenden

Amazon CloudFront unterstützt die Verwendung eines TCP basierten Protokolls WebSocket, das nützlich ist, wenn Sie langlebige bidirektionale Verbindungen zwischen Clients und Servern benötigen. Eine persistente Verbindung ist bei Echtzeit-Anwendungen oft erforderlich. Zu den Szenarien, die Sie verwenden könnten, WebSockets gehören Social-Chat-Plattformen, Arbeitsbereiche für die Online-Zusammenarbeit, Spiele für mehrere Spieler und Dienste, die Datenfeeds in Echtzeit bereitstellen, wie z. B. Finanzhandelsplattformen. Bei der WebSocket Vollduplex-Kommunikation können Daten über eine Verbindung in beide Richtungen fließen.

WebSocket Die Funktionalität wird automatisch aktiviert, sodass sie mit jeder Distribution funktioniert. Um sie zu verwenden WebSockets, konfigurieren Sie im Cache-Verhalten, das Ihrer Distribution zugewiesen ist, eine der folgenden Optionen:

  • Leiten Sie alle Header von Zuschaueranfragen an Ihren Ursprung weiter. (Sie können die Richtlinie für AllViewer verwaltete Anfragen mit Herkunft verwenden.)

  • Leiten Sie die Header Sec-WebSocket-Key und die Sec-WebSocket-Version Anforderungsheader in Ihrer Richtlinie für ursprüngliche Anfragen ausdrücklich weiter.

Wie funktioniert das WebSocket Protokoll

Das WebSocket Protokoll ist ein unabhängiges, TCP basiertes Protokoll, mit dem Sie einen Teil des Mehraufwands — und möglicherweise eine erhöhte Latenz — von vermeiden können. HTTP

Um eine WebSocket Verbindung herzustellen, sendet der Client eine reguläre HTTP Anfrage, die die Upgrade-Semantik verwendet, um HTTP das Protokoll zu ändern. Der Server kann dann den Handshake abschließen. Die WebSocket Verbindung bleibt geöffnet und entweder der Client oder der Server können Datenframes aneinander senden, ohne jedes Mal neue Verbindungen herstellen zu müssen.

Standardmäßig verwendet das WebSocket Protokoll Port 80 für reguläre WebSocket Verbindungen und Port 443 für WebSocket Verbindungen überTLS/SSL. Die Optionen, die Sie für Ihre CloudFront Viewer-Protokollrichtlinien und wählen, Protokoll (nur benutzerdefinierte Ursprünge) gelten sowohl für WebSocket Verbindungen als auch für den HTTP Datenverkehr.

WebSocketAnforderungen

WebSocket Anfragen müssen RFC6455 in den folgenden Standardformaten entsprechen.

Beispiel-Client-Anforderung:

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

Beispiel-Server-Antwort:

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

Wenn die WebSocket Verbindung durch den Client oder Server oder durch eine Netzwerkunterbrechung unterbrochen wird, wird erwartet, dass die Client-Anwendungen die Verbindung mit dem Server wieder aufnehmen.

Empfohlene Header WebSocket

Um unerwartete Probleme im Zusammenhang mit der Komprimierung bei der Verwendung zu vermeiden, empfehlen wir WebSockets, die folgenden Header in eine Origin-Request-Richtlinie aufzunehmen:

  • Sec-WebSocket-Key

  • Sec-WebSocket-Version

  • Sec-WebSocket-Protocol

  • Sec-WebSocket-Accept

  • Sec-WebSocket-Extensions