Azure Front Door mendukung WebSocket pada tingkat Standar dan Premium tanpa memerlukan konfigurasi tambahan. WebSocket, yang distandarkan dalam RFC6455, adalah protokol berbasis TCP yang memfasilitasi komunikasi dupleks penuh antara server dan klien melalui koneksi TCP yang berjalan lama. Ini menghilangkan kebutuhan untuk polling seperti yang diperlukan dalam HTTP dan menghindari beberapa overhead HTTP. Ini dapat menggunakan kembali koneksi TCP yang sama untuk beberapa permintaan atau respons, menghasilkan pemanfaatan sumber daya yang lebih efisien. Ini memungkinkan skenario yang lebih interaktif dan real-time.
WebSocket sangat ideal untuk aplikasi yang membutuhkan pembaruan real time atau aliran data berkelanjutan, seperti aplikasi obrolan, dasbor, pembaruan keuangan, GPS, pendidikan online, streaming langsung, dan game. Misalnya, situs web trading dapat menggunakan WebSocket untuk mendorong dan memperbarui data harga secara real time.
Menggunakan WebSocket di Azure Front Door
Saat menggunakan WebSocket di Azure Front Door, pertimbangkan hal berikut:
Setelah koneksi ditingkatkan ke WebSocket, Azure Front Door mengirimkan data antara klien dan server asal tanpa melakukan inspeksi atau manipulasi selama koneksi yang dibuat.
Inspeksi Web Application Firewall (WAF) diterapkan selama fase pendirian WebSocket. Setelah koneksi dibuat, WAF tidak melakukan pemeriksaan lebih lanjut.
Pemeriksaan kesehatan ke asal dilakukan menggunakan protokol HTTP.
Nonaktifkan penembolokan untuk rute WebSocket. Untuk rute dengan penembolokan diaktifkan, Azure Front Door tidak meneruskan header Peningkatan WebSocket ke asal dan memperlakukannya sebagai permintaan HTTP, mengabaikan aturan cache. Ini menghasilkan permintaan peningkatan WebSocket yang gagal.
Batas waktu diam adalah 5 menit. Jika Azure Front Door tidak mendeteksi transmisi data apa pun dari asal atau klien dalam 5 menit terakhir, koneksi dianggap menganggur dan ditutup.
Saat ini, koneksi WebSocket di Azure Front Door tetap terbuka tidak lebih dari 4 jam. Koneksi WebSocket dapat dihilangkan karena peningkatan server yang mendasar atau aktivitas pemeliharaan lainnya. Kami sangat menyarankan Anda menerapkan logika coba lagi di aplikasi Anda.
Cara kerja protokol WebSocket
Protokol WebSocket menggunakan port 80 untuk koneksi WebSocket standar dan port 443 untuk koneksi WebSocket melalui TLS/SSL. Sebagai protokol stateful, koneksi antara klien dan server tetap aktif sampai dihentikan oleh salah satu pihak. Koneksi WebSocket dimulai sebagai permintaan Peningkatan HTTP dengan ws: skema atau wss: . Koneksi ini dibuat dengan meningkatkan permintaan/respons HTTP menggunakan Connection: Upgradeheader , , Upgrade: websocketSec-WebSocket-Key, dan Sec-WebSocket-Version , seperti yang ditunjukkan dalam contoh header permintaan.
Server merespons dengan 101 Switching Protocols kode status untuk menunjukkan bahwa server beralih ke protokol WebSocket seperti yang diminta oleh klien. Respons mencakup Connection: Upgrade header dan Upgrade: websocket , mengonfirmasi sakelar protokol. Header Sec-WebSocket-Accept dikembalikan untuk memvalidasi bahwa koneksi berhasil dimutakhirkan.
Jabat tangan dari server terlihat sebagai berikut:
Setelah klien menerima respons server, koneksi WebSocket terbuka untuk mulai mengirimkan data. Jika koneksi WebSocket terputus oleh klien atau server, atau oleh gangguan jaringan, aplikasi klien diharapkan untuk memulai kembali koneksi dengan server.
Bangun solusi end-to-end di Microsoft Azure untuk membuat Azure Functions, menerapkan dan mengelola aplikasi web, mengembangkan solusi yang menggunakan penyimpanan Azure, dan banyak lagi.