Catatan : bahwa tulisan ini bukan tutorial membuat aplikasi menggunakan socket.io, namun hanya ringkasan penjelasan tentang fungsi socket.io, terimakasih banyak.
Pendahuluan
Ada pepatah mengatakan tidak kenal tidak sayang, maka sebelum mengetahui lebih lanjut Socket.io, terlebih dahulu mengenal WebSocket. Di artikel ini, hanya fokus kepada pengenalan tentang Socket.io. Dan sebelum itu kita terlebih dahulu mengerti tentang WebSocket. Untuk lebih memudahkan untuk memahami.
Apa Itu WebSocket?
WebSocket (WS) adalah sebuah protokol komunikasi komputer, dikenalkan pada awal sebagai TPC-based socket API di tahun 2008. Protokol ini memungkinkan untuk berkomunikasi secara 2 arah diatas 1 koneksi TCP. WebSocket membolehan interaksi antara client dengan server secara real-time. Dengan protokol ini dapat mengirim request secara terus menerus tanpa harus membuka koneksi untuk 1 koneksi seperti protokol HTTP.
Berikut adalah perbandingan connection lifecycle antara HTTP dengan WebSocket.
Sebagai contoh sederhananya jika dibandingkan dengan protokol HTTP.
- HTTP : Client hanya bisa mengirim request, dan server mengirim balik response ke client.
- WebSocket : Ketika koneksi antara client dan server terhubung, maka kedua pihak dapat saling mengirim data tanpa membuka koneksi baru, sampai koneksi tersebut putus.
Berikut beberapa kelebihan WebSocket dibandingkan menggunakan HTTP
- Koneksi 2 arah secara asynchronous, baik client maupun server dapat mengirim pesan ke masing — masing tujuan secara langsung tanpa pihak yang menerima data harus request terlebih dahulu
- Latency time yang sangat rendah
- Stream data secara real-time
Berikut aplikasi yang disarankan dibangun menggunakan koneksi WebSocket
- Game online multiplayer
- Aplikasi chatting / sosial media
- Aplikasi kolaborasi realtime
- Realtime notification
- Aplikasi berbasis lokasi realtime seperti Gojek, Grab dan sejenisnya
- Internet of Things (IoT)
- Dan aplikasi yang membutuhkan koneksi real-time tanpa melakukan pooling request (looping request dengan jeda waktu tertentu secara terus menerus)