View a markdown version of this page

Gunakan WebSockets dengan CloudFront distribusi - Amazon CloudFront

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan WebSockets dengan CloudFront distribusi

Amazon CloudFront mendukung penggunaan WebSocket, TCP-based protokol yang berguna ketika Anda membutuhkan koneksi dua arah yang berumur panjang antara klien dan server. Koneksi yang persisten sering kali merupakan persyaratan dengan aplikasi waktu nyata. Skenario yang dapat Anda gunakan WebSockets termasuk platform obrolan sosial, ruang kerja kolaborasi online, permainan multi-pemain, dan layanan yang menyediakan umpan data real-time seperti platform perdagangan keuangan. Data melalui WebSocket koneksi dapat mengalir di kedua arah untuk komunikasi dupleks penuh.

WebSocket fungsionalitas secara otomatis diaktifkan untuk bekerja dengan distribusi apa pun. Untuk menggunakanWebSockets, konfigurasikan salah satu dari berikut ini dalam perilaku cache yang dilampirkan ke distribusi Anda:

  • Teruskan semua header permintaan pemirsa ke asal Anda. Anda dapat menggunakan kebijakan permintaan AllViewer asal terkelola.

  • Secara khusus mener Sec-WebSocket-Key uskan dan Sec-WebSocket-Version meminta header dalam kebijakan permintaan asal Anda.

Bagaimana WebSocket protokol bekerja

WebSocket Protokol ini adalah protokol independen yang memungkinkan Anda menghindari beberapa overhead—dan berpotensi meningkatkan—latensi HTTP. TCP-based

Untuk membuat WebSocket koneksi, klien mengirimkan permintaan HTTP biasa yang menggunakan semantik peningkatan HTTP untuk mengubah protokol. Server kemudian dapat menyelesaikan proses. Kon WebSocket eksi tetap terbuka dan klien atau server dapat mengirim bingkai data satu sama lain tanpa harus membuat koneksi baru setiap kali.

Secara default, WebSocket protokol menggunakan port 80 untuk WebSocket koneksi reguler dan port 443 untuk WebSocket koneksi melalui TLS. Opsi yang Anda pilih untuk Anda CloudFront Kebijakan protokol penampil dan Protokol (hanya asal khusus) berlaku untuk WebSocket koneksi dan juga lalu lintas HTTP.

WebSocket persyaratan

WebSocket permintaan harus mematuhi RFC 6455 dalam format standar berikut.

contoh Contoh permintaan klien
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
contoh Sampel respons server
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Sec-WebSocket-Protocol: chat

Jika WebSocket koneksi terputus oleh klien atau server, atau oleh gangguan jaringan, aplikasi klien diharapkan untuk memulai kembali koneksi dengan server.

Header yang WebSocket direkomendasikan

Untuk menghindari masalah terkait kompresi yang tidak terduga saat menggunakan WebSockets, sebaiknya sertakan header berikut dalam kebijakan permintaan asal:

  • Sec-WebSocket-Key

  • Sec-WebSocket-Version

  • Sec-WebSocket-Protocol

  • Sec-WebSocket-Accept

  • Sec-WebSocket-Extensions

catatan

Saat ini, CloudFront hanya mendukung WebSocket koneksi melalui HTTP/1.1 protokol.