Pengenalan Websocket – ketika kita sedang chat atau mengirim pesan ke teman di whatsapp, pesan kita terkirim dengan cepat. Bahkan ketika kamu mendapatkan balasan, kamu akan mendapatkan notifikasi secara langsung. Pernahkah kamu berfikir bagaimana proses dibelakang layar saat aplikasi tersebut dijalankan?
Proses pengiriman pesan tersebut dilakukan secara realtime yang memanfaatkan teknologi websocket. Sebuah teknologi yang akan membuat aplikasi web kamu semakin interaktif. Disini kita akan mengulas tentang apa itu websocket.
Apa itu WebSocket
HTTP dan Websocket merupakan protokol yang digunakan untuk komunikasi antara client-server. WebSocket adalah standar baru untuk komunikasi realtime pada web dan aplikasi mobile. Websocket dirancang untuk diterapkan di browser web dan server web, namun dapat digunakan oleh aplikasi client atau server.
Websocket termasuk protokol yang menyediakan saluran komunikasi full-duplex melaui koneksi TCP tunggal. Websocket sendiri merupakan bagian dari HTML5 yang menghadirkan lalu lintas jaringan dengan latency rendah, yang digunakan untuk mensimulasikan koneksi dua arah dengan menjaga dua koneksi tetap terhubung.
Websocket memiliki beberapa kelebihan dan kelemahan, yaitu
Kelebihan Websocket :
- Mendukung komunikasi Duplex
- Lebih cepat dari HTTP
- Meningkatkan komunikasi antara client dan server
- Penggantian HTTP dengan TCP
- Cross origin communication
- Kompatibel dengan berbagai platform seperti web, dekstop, dan mobile
- Menggantikan long polling
Kelemahan Websocket :
- Mengambil alih protokol komunikasi antara client dan server koneksi tertentu
- Web browser harus sepenuhnya support HTML5
- Tidak support edge caching, tidak seperti HTTP
- Jika aplikasi tidak membutuhkan interaksi realtime, HTTP lebih simpel untuk diimplementasikan
Apa saja Manfaat WebSocket?
- Websocket memungkinkan server untuk mendorong data kepada client yang terhubung.
- Mengurangi lalu lintas jaringan yang tidak perlu dan latency, menggunakan full duplex melalui koneksi tunggal.
- Streaming melalui proxy dan firewall, mendukung komunikasi simultan hulu dan hilir.
- Kompatibel dengan pre-Websocket dunia dengan cara beralih dari koneksi HTTP ke Websockets
Kapan WebSocket Digunakan?
WebSocket pada penerapannya digunakan untuk aplikasi yang membutuhkan interaksi secara langsung dengan pengguna, yaitu:
1. Real-time web application
Real-time web application menggunakan websocket untuk menampilkan data pada sisi client, yang secara langsung dikirim dari backend server. Didalam Websocket, data akan dikirimkan (pushed/transmitted) kedalam satu koneksi yang saling terhubung dan terbuka. Hal ini lah yang membuat mengapa web socket lebih cepat untuk performa aplikasi.
Contoh penggunaan untuk web application seperti pergerakan trading website atau bitcoin trading, yang akan selalu update setiap saat untuk menampilkan fluktuasi harga dan pergerakan data yang terus menerus dikirim dari backend server ke client atau frontend dengan menggunakan websocket channel.
2. Gaming application
Dalam dunia game online, data akan diterima oleh server tanpa kamu perlu merefresh ui setiap saat, yang pastinya akan berpengaruh terhadap jalannya game. UI akan akan secara otomatis direfresh tanpa membuat koneksi baru. Jadi, dalam hal tersebut, websocket sangat membantu dalam aplikasi berbasis game.
3. Chat application
Chat application atau aplikasi chat menggunakan websocket untuk menstabilkan koneksi hanya sekali untuk setiap perubahan. Mempublish dan broadcast pesan kepada semua subscriber. Dengan menggunakan koneksi websocket yang sama, kamu dapat mengirim atau menerima pesan satu sama lain dengan mudah dan cepat.