Apa itu WebSocket, dan Cara Implementasi WebSocket pada NodeJS (Part 1 dari 3)

Free website hits

Apa itu WebSocket, dan Cara Implementasi WebSocket pada NodeJS (Part 1 dari 3)

Apa itu WebSocket, dan Cara Implementasi WebSocket pada NodeJS (Part 1 dari 3)
8 min read

Dalam pengembangan aplikasi web modern, komunikasi real-time menjadi kebutuhan yang semakin penting. Contohnya seperti aplikasi chat, notifikasi langsung, game multiplayer, hingga sistem monitoring data secara langsung.
Namun, sebelum hadirnya WebSocket, komunikasi antara client dan server dilakukan menggunakan metode HTTP request biasa, yang memiliki keterbatasan karena bersifat satu arah — client mengirim permintaan, server merespons, dan koneksi ditutup.

WebSocket hadir sebagai solusi dari masalah tersebut. Dengan WebSocket, komunikasi antara client dan server dapat berlangsung dua arah (bidirectional) dan real-time, tanpa perlu melakukan refresh atau request berulang.


Pengertian WebSocket

WebSocket adalah protokol komunikasi berbasis TCP yang memungkinkan pertukaran data dua arah antara client dan server melalui satu koneksi yang tetap terbuka.
Dengan kata lain, ketika koneksi WebSocket terbentuk, client dan server bisa saling mengirim pesan kapan saja tanpa harus menunggu permintaan dari salah satu pihak.

Hal ini berbeda dari AJAX polling atau long polling yang mengharuskan client terus-menerus mengirim permintaan untuk memeriksa apakah ada data baru.


Cara Kerja WebSocket

  1. Handshaking:
    Awalnya, komunikasi dimulai dengan request HTTP dari client ke server untuk meng-upgrade koneksi menjadi WebSocket.

  2. Connection Established:
    Setelah handshake berhasil, koneksi tetap terbuka.

  3. Data Exchange:
    Client dan server dapat saling mengirim pesan secara langsung dan real-time.

  4. Connection Closed:
    Koneksi hanya ditutup jika salah satu pihak menutupnya atau terjadi error.


Keuntungan Menggunakan WebSocket

  • Real-time: Data dikirim seketika tanpa delay.

  • Efisien: Hanya membuka satu koneksi yang terus digunakan, tidak seperti HTTP yang selalu menutup setiap request.

  • Hemat Bandwidth: Karena tidak perlu mengirim header HTTP berulang-ulang.

  • Ideal untuk Aplikasi Interaktif: Seperti chat, dashboard data, dan game online.


Implementasi WebSocket pada NodeJS (Dasar)

Diagram

Diagram: Apa itu WebSocket, dan Cara Implementasi WebSocket pada NodeJS

Untuk memahami cara implementasi, kita akan mulai dengan bagian pertama: membuat server WebSocket sederhana menggunakan NodeJS.

Langkah-langkahnya:

1. Instalasi Awal

Pastikan NodeJS sudah terpasang, lalu buat folder proyek:

mkdir websocket-demo
cd websocket-demo
npm init -y
npm install ws

2. Membuat File Server

Buat file server.js dan tuliskan kode berikut:

const WebSocket = require('ws');
const server = new WebSocket.Server({ port: 8080 });

server.on('connection', (socket) => {
  console.log('Client terhubung');

  socket.on('message', (message) => {
    console.log('Pesan diterima:', message);
    socket.send('Server menerima pesan: ' + message);
  });

  socket.on('close', () => {
    console.log('Client terputus');
  });
});

console.log('Server WebSocket berjalan di port 8080');

Kode di atas membuat server WebSocket yang akan mendengarkan koneksi di port 8080. Saat client terhubung dan mengirim pesan, server akan membalas pesan tersebut.


3. Menguji Server

Kita dapat menguji server menggunakan WebSocket client seperti browser console atau ekstensi seperti WebSocket King Client.
Di browser console, coba jalankan:

const socket = new WebSocket('ws://localhost:8080');
socket.onopen = () => socket.send('Halo dari browser!');
socket.onmessage = (e) => console.log('Pesan dari server:', e.data);

Jika berhasil, Anda akan melihat pesan balasan dari server.


Kesimpulan (Bagian 1)

Pada bagian pertama ini, kita sudah memahami apa itu WebSocket dan bagaimana membuat server sederhana menggunakan NodeJS.
Pada Part 2, kita akan membahas cara membuat client WebSocket secara lebih mendalam dan bagaimana mengelola beberapa koneksi sekaligus.

Recommended for you