Menggunakan WebSocket

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Baca dokumentasi Apigee Edge.

Topik ini membahas cara menggunakan WebSockets dengan Apigee dan Apigee Hybrid.

Pengantar

Ada banyak situasi yang mengharuskan interaksi web terjadi secara real time, seperti game, komunikasi, transaksi keuangan, dan aktivitas dengan throughput tinggi lainnya.

WebSocket adalah protokol yang menyediakan saluran komunikasi full-duplex antara klien web dan server web melalui koneksi TCP tunggal. Protokol WebSocket menggunakan protokol HTTP untuk membuat koneksi antara klien dan server. Setelah dibuat, klien dan server kemudian menggunakan protokol WebSocket untuk mengirim dan menerima data.

Protokol dan spesifikasi WebSockets dikelola oleh W3C.

Dukungan untuk WebSockets di Apigee

Di Apigee dan Apigee Hybrid, grup lingkungan menyediakan pemilihan rute ke lingkungan dan menentukan nama host tempat proxy API diekspos. Grup lingkungan mendukung protokol HTTP dan WS secara native. Anda tidak perlu membuat grup lingkungan khusus atau konfigurasi khusus untuk menggunakan WebSockets. Namun, klien dapat meminta upgrade protokol dari HTTP ke WS dengan menyertakan header permintaan Upgrade. Permintaan upgrade yang dibuat ke endpoint proxy API akan menampilkan respons 101 Switching Protocols. Permintaan dan respons lebih lanjut dibuat secara dua arah pada koneksi WebSockets terbuka, hingga koneksi tersebut ditutup.

Dukungan kebijakan

Semua kebijakan akan berfungsi di proxy soket web hingga handshake selesai (yaitu hingga respons HTTP 101 ditampilkan ke klien). Setelah itu, tidak ada kebijakan yang akan dijalankan, tetapi token OAuth yang divalidasi sebelum handshake tetap berlaku dan koneksi terputus jika masa berlaku token berakhir atau dicabut.

Mencabut koneksi

Koneksi WebSockets ditutup jika:

  • Endpoint proxy menerima permintaan tanpa kunci API atau token OAuth.
  • Endpoint proxy menerima permintaan dengan kunci API atau token OAuth yang sudah tidak berlaku atau tidak valid.
  • Waktu koneksi WebSockets habis.

Menggunakan trace dan analisis

Di alat Debug, untuk setiap koneksi WebSockets, Anda akan melihat satu permintaan muncul dengan 101 Status, seperti yang ditunjukkan pada screenshot berikut:

Meminta dengan status 101 di alat Debug.

Di dasbor analisis Apigee, Anda akan melihat traffic yang dihitung untuk setiap sesi WebSockets. Traffic bolak-balik yang terjadi selama sesi tidak ditampilkan di dasbor.

Aplikasi WebSockets contoh

Untuk mempelajari lebih lanjut, Anda dapat melihat aplikasi websocket-sample yang berfungsi di GitHub. Contoh ini menunjukkan cara memanggil proxy API melalui koneksi WebSockets. Proxy tersebut memanggil aplikasi target backend sederhana yang di-deploy di cluster Kubernetes Anda.