Apa itu Websocket – ketika kamu mengakses sebuah website, sebenarnya yang kamu lakukan adalah kamu mengirimkan sebuah request (permintaan) ke server dengan harapan mendapatkan respon berupa data, dokumen atau berkas yang di inginkan.
Teknologi web saat ini sudah berkembang dengan cepat. Seperti yang populer saat ini yaitu websocket yang dapat membuat aplikasi web kamu semakin interaktif. Untuk lebih lengkapnya, baca terus penjelasan berikut sampai tuntas.
Apa itu Websocket?
Websocket adalah standar baru untuk komunikasi realtime pada web dan aplikasi mobile. Websocket dirancang untuk diterpakan di browser web dan server web. Namun, dapat digunakan oleh aplikasi client atau server. Websocket merupakan protokol yang menyediakan saluran komunikasi full-duplex (komunikasi dua arah secara bersamaan) melalui koneksi TCP tunggal.
Websocket itu sendiri termasuk bagian dari HTML 5 dimana menghadirkan pengurangan bsar dalam lalu-lintas jaringan yang tidak penting dan latency dibandingkan dengan solusi polling dan long-polling yang telah digunakan untuk mensimulasikan koneksi dua arah dengan cara menjaga dua koneksi tetap terhubung.
Sejarah websocket
Websocket pertama kali digunakan sebagai TCP Connection dalam spesifikasi HTML 5, sebagai tempat untuk berbasis TCP socket API. Pada bulan Juni 2008, nama websocket diciptakan oleh Ian Hickson dan Michael Carter, serangkaian diskusi yang dipimpin oleh Michael Carter yang mengakibatkan versi pertama dari protokol dikenal sebagai Websocket.
Manfaat Websocket
Websocket merupakan salah satu cara baru untuk komunikasi dua arah antara klien dan server tanpa mengirimkan informasi tambahan yang tidak perlu melalui protokol HTTP. Websocket menggunakan protokolnya sendiri yang dipaparkan oleh IETF.
Kamu dapat melakukan komunikasi dua arah penuh antara server dan klien yan glebih ringan dibandingkan dengan metode HTTP tradisional dengan bantuan websockets ini. Berikut ini adalah beberapa manfaat dari websockets.
- Websocket memungkinkan server untuk mendorong data kepada klien 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 ke hilir.
- Kompatibel dengan pre-websocket dunia dengan cara beralih dari koneksi HTTP ke websockets.
Kelebihan websocket :
- Mendukung komunikasi Duplex
- Lebih cepat dari HTTP
- Meningkatkan efisiensi komunikasi antara klien dan server
- Penggantian HTTP menggunakan TCP
Kekurangan websocket
- Mengambil alih protokol komunikasi antara klien dan server untuk koneksi tertentu.
- Web browser harus sepenuhnya support HTML 5.
Cara kerja websocket
Websockets menyediakan koneksi terus-menerus antara klien dan server yang dapat kamu gunakan di kedua belah pihak untuk memulai mengirim data kapan saja.
Klien membuat koneksi websocket melalui proses yang biasa dikenal sebagai websocket handshake. Proses ini dimulai dengan klien yang mengirimkan permintaan HTTP reguler ke server. Permintaan ini menginformasikan server yang klien ingin membuat sambungan ke websocket.
Permasalahan yang dapat diselesaikan dengan Websockets
Latar belakang yang mendasari terciptanya websocket adalah permintaan beberapa client yang mengharuskan developer bisa membuat aplikasi berbasis web secara realtime.
Aplikasi realtime adalah ketika ada perubahan data maka saat itu juga website di browser klien juga ada perubahan. Minimal muncul notifikasi. Ada alternatif lain untuk permasalahan developer tersebut, diantaranya adalah metode polling dan long polling.
Metode polling mengirimkan request data ke server secara terus menerus. Apabila hanya satu client yang melakukan request berulang seperti itu, mungkin tidak masalah, namun bagaimana jika ada beberapa client yang mengakses satu server dan berulangkali melakukan metode polling, maka server akan sibuk dan rentan terkena serangan DDOS.
Metode long polling adalah metode polling dengan interval waktu yang berkala. Jadi request tidak sesering metode polling. Manfaatnya adalah server jauh lebih stabil dibandingkan dengan metode polling. Namun permasalahannya adalah long polling tidak menjawab realtime karena ada interval waktu yang digunakan.
Perbedaan AJAX dan Websocket
Dengan AJAX client harus melakukan request terlebih dahulu, jika ingin mendapatkan respon dari server. Sedangkan pada websocket client hanya melakukan request pada koneksi pertama, kedua dan untuk selanjutnya server dapat merespon tanpa client harus melakukan reqeust terlebih dahulu.
Websocket sering digunakan untuk aplikasi web yang bersifat realtime atau aplikasi web yang membutuhkan data secepat mungkin, seperti pada aplikasi kurs index saham, aplikasi perbankan, aplikasi game online, dan lain–lain. Keunggulan websocket dibandingkan protokol lain adalah websocket mampu menghemat bandwith dan latency jaringan.