
Keterbatasan Protokol HTTP Biasa
Protokol HTTP (seperti GET atau POST) yang kita pelajari selama ini bekerja dengan sistem Request-Response (Satu Arah). Artinya, Server hanya akan memberikan data JIKA Client (Browser) memintanya. Setelah Server mengirim jawaban, koneksi internet langsung diputus (Closed).
Bayangkan kamu sedang *chatting* dengan temanmu via web. Jika menggunakan HTTP, browsermu harus me-refresh halaman (atau melakukan *Polling* di latar belakang) setiap 1 detik sekali hanya untuk bertanya: "Ada pesan baru nggak?". Cara ini sangat lambat dan membebani server.
Munculnya WebSockets (WSS)
Untuk mengatasi masalah aplikasi yang butuh kecepatan instan (seperti Live Chat, Game Multiplayer, dan Grafik Saham), diciptakanlah teknologi WebSockets.
WebSocket tidak menggunakan sistem Request-Response yang diputus-nyambung. Sebaliknya, WebSocket membuka Koneksi Pipa Permanen Dua Arah (Full-Duplex) antara Browser dan Server.
Cara Kerja WebSockets
- Handshake (Bersalaman): Browser meminta izin ke server via HTTP biasa: "Hei Server, kita upgrade koneksi kita ke WebSocket yuk!"
- Koneksi Terbuka: Jika server setuju, protokol HTTP ditinggalkan dan diganti dengan
ws://(atauwss://untuk versi aman/HTTPS). Mulai detik ini, sebuah "pipa saluran" terus terbuka tanpa batas waktu. - Push Data Bebas: Sekarang, Server bisa "mendorong" (Push) data pesan masuk ke browser KAPAN SAJA tanpa perlu disuruh. Browser juga bisa mengirim data ketikan (Typing...) ke server tanpa jeda *loading* koneksi baru.
Socket.IO: Sahabat Developer Backend
Menulis kode WebSocket murni di JavaScript cukup merepotkan (terutama jika internet user sering putus-nyambung). Oleh karena itu, developer modern hampir selalu menggunakan *library* sakti bernama Socket.IO (untuk Node.js).
Socket.IO secara otomatis mengatur koneksi WebSocket-mu. Jika browser pengunjung terlalu jadul dan tidak mendukung WebSocket, Socket.IO akan dengan pintar menurunkannya kembali (Fallback) ke metode *Polling* biasa agar aplikasimu tidak crash.
Kesimpulan
Jangan gunakan WebSockets untuk semua hal! Jika kamu hanya membuat web e-commerce untuk menampilkan katalog sepatu, HTTP/REST API sudah sangat sempurna. Gunakan WebSockets HANYA untuk fitur yang datanya sangat dinamis dan butuh sinkronisasi antar-pengguna secara langsung dalam hitungan milidetik.
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates