Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengelola pengguna yang terhubung dan aplikasi klien: $connect dan $disconnect rute
Bagian berikut menjelaskan cara menggunakan $connect dan $disconnect rute untuk WebSocket API Anda.
$connectRute
Aplikasi klien terhubung ke WebSocket API Anda dengan mengirimkan permintaan WebSocket pemutakhiran. Jika permintaan berhasil, $connect rute dijalankan saat koneksi sedang dibuat.
Karena WebSocket koneksi adalah koneksi stateful, Anda dapat mengonfigurasi otorisasi pada rute saja. $connect AuthN/AuthZakan dilakukan hanya pada waktu koneksi.
Sampai eksekusi integrasi yang terkait dengan $connect rute selesai, permintaan pemutakhiran tertunda dan koneksi sebenarnya tidak akan dibuat. Jika $connect permintaan gagal (misalnya, karena AuthN AuthZ /kegagalan atau kegagalan integrasi), koneksi tidak akan dibuat.
catatan
Jika otorisasi gagal$connect, koneksi tidak akan dibuat, dan klien akan menerima 401 atau 403 tanggapan.
Menyiapkan integrasi untuk $connect adalah opsional. Anda harus mempertimbangkan untuk menyiapkan $connect integrasi jika:
-
Anda ingin mengaktifkan klien untuk menentukan subprotokol dengan menggunakan bidang.
Sec-WebSocket-ProtocolUntuk kode sampel, lihat Siapkan $connect rute yang membutuhkan WebSocket subprotokol. -
Anda ingin diberi tahu saat klien terhubung.
-
Anda ingin membatasi koneksi atau mengontrol siapa yang terhubung.
-
Anda ingin backend Anda mengirim pesan kembali ke klien menggunakan URL callback.
-
Anda ingin menyimpan setiap ID koneksi dan informasi lainnya ke dalam database (misalnya, Amazon DynamoDB).
Melewati informasi koneksi dari $connect rute
Anda dapat menggunakan integrasi proxy dan non-proxy untuk meneruskan informasi dari $connect rute ke database atau lainnya. Layanan AWS
Untuk meneruskan informasi koneksi menggunakan integrasi proxy
Anda dapat mengakses informasi koneksi dari integrasi proxy Lambda dalam acara tersebut. Gunakan AWS Lambda fungsi lain Layanan AWS atau untuk memposting ke koneksi.
Fungsi Lambda berikut menunjukkan cara menggunakan requestContext objek untuk mencatat ID koneksi, nama domain, nama panggung, dan string kueri.
Untuk meneruskan informasi koneksi menggunakan integrasi non-proxy
-
Anda dapat mengakses informasi koneksi dengan integrasi non-proxy. Siapkan permintaan integrasi dan berikan template permintaan WebSocket API. Template pemetaan Velocity Template Language (VTL)
berikut menyediakan permintaan integrasi. Permintaan ini mengirimkan rincian berikut ke integrasi non-proxy: -
ID Koneksi
-
Nama domain
-
Nama panggung
-
Jalur
-
Header
-
String pertanyaan
Permintaan ini mengirimkan ID koneksi, nama domain, nama panggung, jalur, header, dan string kueri ke integrasi non-proxy.
{ "connectionId": "$context.connectionId", "domain": "$context.domainName", "stage": "$context.stage", "params": "$input.params()" }Untuk informasi selengkapnya tentang pengaturan transformasi data, lihatTransformasi data untuk WebSocket APIs di API Gateway.
Untuk menyelesaikan permintaan integrasi,
StatusCode: 200tetapkan respons integrasi. Untuk mempelajari lebih lanjut tentang menyiapkan respons integrasi, lihatMenyiapkan respons integrasi menggunakan konsol API Gateway. -
$disconnectRute
$disconnectRute dijalankan setelah koneksi ditutup.
Koneksi dapat ditutup oleh server atau oleh klien. Karena koneksi sudah ditutup saat dijalankan, $disconnect adalah acara upaya terbaik. API Gateway akan mencoba yang terbaik untuk mengirimkan $disconnect acara ke integrasi Anda, tetapi tidak dapat menjamin pengiriman.
Backend dapat memulai pemutusan dengan menggunakan API. @connections Untuk informasi selengkapnya, lihat Gunakan @connections perintah di layanan backend Anda.