WebSocket adalah teknologi yang memungkinkan komunikasi real-time antara klien (browser atau aplikasi) dan server. Berbeda dengan HTTP, WebSocket menyediakan saluran komunikasi dua arah yang tetap terbuka selama koneksi aktif, sehingga server bisa mengirim data kapan saja tanpa menunggu permintaan dari klien.
Contents
Apa itu WebSocket?
WebSocket adalah protokol komunikasi jaringan yang bekerja di atas TCP. Protokol ini dirancang untuk aplikasi yang membutuhkan pertukaran data secara cepat dan berkelanjutan. WebSocket menggunakan skema:
-
ws://
→ WebSocket biasa (tidak terenkripsi) -
wss://
→ WebSocket Secure (terenkripsi, mirip HTTPS)
Kelebihan WebSocket dibanding HTTP:
Fitur | HTTP | WebSocket |
---|---|---|
Komunikasi | Request-response | Full-duplex (dua arah) |
Koneksi | Setiap request baru | Persistent (tetap terbuka) |
Latensi | Lebih tinggi | Rendah |
Overhead Header | Besar | Kecil |
Cara Kerja WebSocket
-
Handshake Awal:
Klien mengirim HTTP request khusus ke server untuk meminta upgrade ke WebSocket. -
Koneksi Terbuka:
Jika server menyetujui, koneksi TCP tetap terbuka dan bisa dipakai dua arah. -
Pertukaran Pesan:
Klien dan server dapat mengirim pesan kapan saja, baik berupa teks maupun biner. -
Penutupan Koneksi:
Koneksi dapat ditutup oleh salah satu pihak dengan perintah close.
Contoh Implementasi
1. Client Web (JavaScript)
2. Server Node.js (Menggunakan ws
Library)
Kegunaan WebSocket
WebSocket banyak digunakan pada aplikasi real-time, seperti:
-
Chat dan messaging apps
-
Game online
-
Monitoring data (misalnya harga saham atau sensor IoT)
-
Live streaming & notifikasi
-
Kolaborasi dokumen secara online
FAQs
1. Apa perbedaan WebSocket dan HTTP biasa?
HTTP bersifat request-response, artinya server hanya merespons ketika ada permintaan. WebSocket bersifat full-duplex, sehingga server bisa mengirim data kapan saja.
2. Apa itu wss://
?wss://
adalah WebSocket Secure, sama seperti HTTPS. Data yang dikirim terenkripsi sehingga lebih aman.
3. Bisakah WebSocket bekerja di browser lama?
Sebagian besar browser modern mendukung WebSocket, tetapi browser lama (seperti IE 9 ke bawah) mungkin tidak mendukung.
4. Apakah WebSocket menggantikan HTTP?
Tidak. WebSocket lebih cocok untuk aplikasi real-time. HTTP tetap digunakan untuk request biasa, seperti mengambil halaman web atau API sederhana.
5. Bagaimana menangani koneksi yang terputus?
Biasanya aplikasi menggunakan reconnect otomatis atau mekanisme heartbeat untuk memastikan koneksi tetap hidup.
6. Apakah WebSocket bisa digunakan untuk aplikasi mobile?
Ya, banyak SDK mobile (iOS, Android) mendukung WebSocket untuk komunikasi real-time.
Kesimpulan
WebSocket adalah teknologi penting untuk aplikasi modern yang membutuhkan komunikasi real-time. Dengan kemampuan full-duplex dan koneksi yang persisten, WebSocket memungkinkan pengalaman pengguna yang lebih cepat dan responsif dibanding HTTP biasa.