

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

# Ikhtisar WebSocket APIs di API Gateway
<a name="apigateway-websocket-api-overview"></a>

Di API Gateway Anda dapat membuat WebSocket API sebagai frontend stateful untuk AWS layanan (seperti Lambda atau DynamoDB) atau untuk titik akhir HTTP. WebSocket API memanggil backend Anda berdasarkan konten pesan yang diterimanya dari aplikasi klien.

Tidak seperti REST API, yang menerima dan merespons permintaan, WebSocket API mendukung komunikasi dua arah antara aplikasi klien dan backend Anda. Backend dapat mengirim pesan callback ke klien yang terhubung.

Di WebSocket API Anda, pesan JSON yang masuk diarahkan ke integrasi backend berdasarkan rute yang Anda konfigurasikan. (Pesan non-JSON diarahkan ke `$default` rute yang Anda konfigurasikan.)

*Rute* menyertakan *kunci rute*, yang merupakan nilai yang diharapkan setelah *ekspresi pemilihan rute* dievaluasi. `routeSelectionExpression`Ini adalah atribut yang didefinisikan pada tingkat API. Ini menentukan properti JSON yang diharapkan hadir dalam payload pesan. Untuk informasi selengkapnya tentang ekspresi pemilihan rute, lihat[Ekspresi pemilihan rute](websocket-api-develop-routes.md#apigateway-websocket-api-route-selection-expressions).

Misalnya, jika pesan JSON Anda berisi `action` properti, dan Anda ingin melakukan tindakan berbeda berdasarkan properti ini, ekspresi pemilihan rute Anda mungkin`${request.body.action}`. Tabel routing Anda akan menentukan tindakan mana yang akan dilakukan dengan mencocokkan nilai `action` properti terhadap nilai kunci rute kustom yang telah Anda tentukan dalam tabel.

## Menggunakan rute untuk WebSocket API
<a name="apigateway-websocket-api-overview-routes"></a>

Ada tiga rute standar yang dapat digunakan:`$connect`,`$disconnect`, dan`$default`. Selain itu, Anda dapat membuat rute khusus.
+ API Gateway memanggil `$connect` rute saat koneksi persisten antara klien dan WebSocket API sedang dimulai.
+ API Gateway memanggil `$disconnect` rute saat klien atau server terputus dari API.
+ API Gateway memanggil rute kustom setelah ekspresi pemilihan rute dievaluasi terhadap pesan jika rute yang cocok ditemukan; kecocokan menentukan integrasi mana yang dipanggil.
+ API Gateway memanggil `$default` rute jika ekspresi pemilihan rute tidak dapat dievaluasi terhadap pesan atau jika tidak ditemukan rute yang cocok.

Untuk informasi selengkapnya tentang `$disconnect` rute `$connect` dan rute, lihat[Mengelola pengguna yang terhubung dan aplikasi klien: `$connect` dan `$disconnect` rute](apigateway-websocket-api-route-keys-connect-disconnect.md).

Untuk informasi selengkapnya tentang `$default` rute dan rute khusus, lihat[Memanggil integrasi backend Anda dengan `$default` Rute dan rute khusus di API Gateway](apigateway-websocket-api-routes-integrations.md).

## Mengirim data ke aplikasi klien yang terhubung
<a name="apigateway-websocket-api-overview-send-data"></a>

Layanan backend dapat mengirim data ke aplikasi klien yang terhubung. Anda dapat mengirim data dengan melakukan hal berikut:
+ Gunakan integrasi untuk mengirim respons, yang dikembalikan ke klien dengan respons rute yang telah Anda tentukan.
+ Anda dapat menggunakan `@connections` API untuk mengirim permintaan POST. Untuk informasi selengkapnya, lihat [Gunakan `@connections` perintah di layanan backend Anda](apigateway-how-to-call-websocket-api-connections.md).

## WebSocket Kode status API
<a name="apigateway-websocket-status-codes"></a>

API Gateway WebSocket APIs menggunakan kode status berikut untuk komunikasi dari server ke klien seperti yang dijelaskan dalam [WebSocket Tutup Registri Nomor Kode](https://www.iana.org/assignments/websocket/websocket.xhtml#close-code-number):

1001  
API Gateway mengembalikan kode status ini saat klien menganggur selama 10 menit atau mencapai masa pakai koneksi maksimum 2 jam.

1003  
API Gateway mengembalikan kode status ini ketika titik akhir menerima tipe media biner. Jenis media biner tidak didukung untuk WebSocket APIs.

1005  
API Gateway mengembalikan kode status ini jika klien mengirimkan bingkai tutup tanpa kode penutupan.

1006  
API Gateway mengembalikan kode status ini jika ada penutupan koneksi yang tidak terduga, seperti koneksi TCP ditutup tanpa bingkai WebSocket tutup.

1008  
API Gateway mengembalikan kode status ini ketika titik akhir menerima terlalu banyak permintaan dari klien tertentu.

1009  
API Gateway mengembalikan kode status ini ketika titik akhir menerima pesan yang terlalu besar untuk diproses.

1011  
API Gateway mengembalikan kode status ini ketika ada kesalahan server internal. 

1012  
API Gateway mengembalikan kode status ini jika layanan dimulai ulang.