WebSocket
Protokol komunikasi dua arah real-time antara client dan server.
WebSocket adalah protokol komunikasi yang menyediakan channel dua arah (full-duplex) antara client dan server melalui satu koneksi TCP yang persisten. Berbeda dengan HTTP yang request-response (client minta, server jawab, selesai), WebSocket memungkinkan server mengirim data ke client kapan saja (real-time). Use cases: chat application, live notifications, real-time collaboration (Google Docs), live score update, stock price ticker. Proses: client kirim HTTP request dengan header Upgrade: websocket → server terima dan meng-upgrade koneksi → channel terbuka untuk komunikasi dua arah. Library: Socket.IO (fallback ke polling kalau WebSocket tidak tersedia), ws (native WebSocket), dan PartyKit (cloud-based WebSocket).
Contoh Kode
// WebSocket server (ws library)
import { WebSocketServer } from 'ws';
const wss = new WebSocketServer({ port: 8080 });
wss.on('connection', (ws) => {
ws.on('message', (data) => {
// Broadcast ke semua client yang terhubung
wss.clients.forEach(client => {
if (client.readyState === 1) {
client.send(JSON.stringify({ type: 'chat', message: data.toString() }));
}
});
});
});