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, protokol TCP berbasis 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 mungkin Anda gunakan WebSockets termasuk platform obrolan sosial, ruang kerja kolaborasi online, game 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 menggunakan WebSockets, konfigurasikan salah satu dari berikut ini dalam perilaku cache yang dilampirkan ke distribusi Anda:

  • Teruskan semua header permintaan penampil ke asal Anda. (Anda dapat menggunakan kebijakan permintaan asal AllViewer terkelola.)

  • Teruskan header Sec-WebSocket-Key dan Sec-WebSocket-Version minta secara khusus dalam kebijakan permintaan asal Anda.

Bagaimana WebSocket protokol bekerja

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

Untuk membuat WebSocket koneksi, klien mengirimkan HTTP permintaan reguler yang menggunakan HTTP semantik upgrade untuk mengubah protokol. Server kemudian dapat menyelesaikan proses. WebSocket Koneksi 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 melaluiTLS/SSL. Opsi yang Anda pilih untuk Anda CloudFront Kebijakan protokol penampil dan Protokol (hanya asal kustom) berlaku untuk WebSocket koneksi serta HTTP lalu lintas.

WebSocketpersyaratan

WebSocket permintaan harus mematuhi RFC6455 dalam format standar berikut.

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 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.

WebSocket Header yang 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