Sebelum menyentuh WebSocket, kalian perlu menguasai HTTP, JavaScript asynchronous, konsep TCP/IP, dan event-driven programming. Di episode ini kalian menyiapkan Node.js, menginstall library ws, dan memverifikasi koneksi WebSocket pertama.

Selamat datang di series Belajar WebSocket! Series ini akan membawa kalian menguasai WebSocket — protokol komunikasi real-time bidirectional yang berjalan di atas satu koneksi TCP persisten — dari konsep hingga production readiness. Total ada 34 episode yang tersusun dari enam fase.
Tapi sebelum menyentuh ws, Socket.IO, atau API WebSocket di browser, ada beberapa skill dasar dan perangkat lunak yang wajib kalian miliki. Mengapa prasyarat ini penting? Karena WebSocket bukan sekadar library: dia adalah protokol jaringan yang melibatkan HTTP upgrade, framing binary, event-driven handling, dan manajemen koneksi jangka panjang. Kalau kalian belum paham dasar-dasarnya, semua istilah seperti handshake, ping, dan heartbeat akan terasa abstrak.
Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar, menyiapkan Node.js, menginstall library ws, dan melakukan verifikasi koneksi pertama. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.
WebSocket lahir dari HTTP — koneksi WebSocket dimulai sebagai request HTTP biasa yang di-upgrade. Kalian wajib paham metode HTTP, status code, header, dan bagaimana server mengirim response. Tanpa ini, episode 3 tentang handshake akan terasa berat.
node --version
npm --versionOutput harus menampilkan versi Node.js LTS (18 ke atas) dan npm yang menyertainya. Jika belum ada, install dulu dari situs resmi Node.js.
WebSocket bersifat event-driven: kalian tidak memanggil dan menunggu, melainkan mendaftarkan handler yang dipanggil saat event terjadi. Konsep yang wajib lancar:
on(event, handler) yang dipakai WebSocket dan Socket.IO.Pahami juga konsep concurrency: satu server Node.js melayani ribuan koneksi WebSocket sekaligus tanpa menunggu satu per satu. Ini fondasi mengapa pola ws.on("message", handler) terasa sangat ringan.
Beberapa hal yang harus kalian kuasai sebelum lanjut:
ws:// dan wss:// adalah scheme-nya.Mulai dengan membuat direktori project dan menginisialisasi npm:
mkdir belajar-websocket
cd belajar-websocket
npm init -y
npm install wsLibrary ws adalah implementasi WebSocket paling populer untuk Node.js. Dia ringan, stabil, dan menjadi tulang punggung mayoritas aplikasi real-time di ekosistem JavaScript.
Gunakan Chrome atau Firefox. Tab Network di DevTools punya bagian khusus untuk inspeksi frame WebSocket — kalian akan menggunakannya terus-menerus di episode 4 dan 7 untuk memeriksa pesan yang dikirim dan diterima.
Untuk sepanjang series, siapkan:
npm install -g artilleryArtillery akan dipakai di episode 26 untuk load testing. Untuk uji cepat, kalian juga bisa memakai Postman atau Insomnia — keduanya mendukung WebSocket connection sejak versi terbaru.
Sepanjang series, bahasa utama adalah JavaScript/TypeScript dengan stack berikut:
ws untuk server WebSocket murni.gorilla/websocket sebagai referensi alternatif di beberapa episode.websockets sebagai perbandingan lintas bahasa.Kalian tidak perlu menguasai semua bahasa. Fokus pada satu stack utama — direkomendasikan Node.js + ws — lalu gunakan stack lain hanya sebagai pembanding.
Info
WebSocket bukan satu-satunya cara real-time. Di episode 1 dan 32 kalian akan melihat alternatif seperti SSE, WebTransport, dan gRPC streaming. Memahami posisi WebSocket di antara semua ini akan membuat kalian memilih tool yang tepat per kebutuhan.
Project WebSocket tidak berat, tapi menjalankan load testing dan Docker (episode 27) butuh resource. Minimum yang disarankan:
Jalankan server ws sederhana, lalu cek dari klien di terminal yang sama:
const { WebSocketServer } = require("ws");
const wss = new WebSocketServer({ port: 8080 });
wss.on("connection", (ws) => {
ws.send("selamat datang di belajar websocket");
});Simpan sebagai server.js dan jalankan dengan node server.js. Untuk menguji, gunakan klien WebSocket di terminal lain:
npm install -g wscat
wscat -c ws://localhost:8080Jika wscat -c ws://localhost:8080 menampilkan pesan selamat datang, environment kalian sudah siap. Perintah new WebSocketServer({ port: 8080 }) membuat server yang mendengarkan koneksi WebSocket di port 8080 — detailnya akan kita bedah di episode 5.
Rangkuman prasyarat yang sudah kalian siapkan di episode 0:
belajar-websocket.Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi sebelum melanjutkan. Fondasi yang kuat akan membuat 33 episode berikutnya terasa jauh lebih ringan.
Di episode 0 ini kalian sudah menyiapkan pijakan untuk seluruh series: memahami skill yang dibutuhkan, menyiapkan Node.js, menginstall library ws, dan memverifikasi koneksi WebSocket pertama dengan wscat.
Inti yang harus dibawa pulang:
ws adalah fondasi server WebSocket di Node.js.Di episode 1 selanjutnya kita akan membahas sejarah real-time web — mengapa dunia bergerak dari short polling dan long polling menuju Server-Sent Events, hingga akhirnya melahirkan WebSocket. Ini akan menjelaskan masalah apa sebenarnya yang dipecahkan protokol yang sedang kalian pelajari ini.