WebSocket vs Server-Sent Events vs Long Polling
Perbandingan tiga teknik real-time communication di web application dan kapan menggunakan masing-masing.
Tiga Pendekatan Real-Time
Ketika aplikasi butuh data real-time, ada tiga opsi utama yang bisa dipilih.
1. WebSocket
Koneksi full-duplex, client dan server bisa kirim data kapan saja.
const ws = new WebSocket('wss://api.example.com/ws');
ws.onmessage = (event) => {
console.log('Received:', event.data);
};
ws.send(JSON.stringify({ type: 'ping' }));
Cocok untuk: Chat app, live collaboration, gaming
2. Server-Sent Events (SSE)
Satu arah (server ke client), lebih simple dari WebSocket.
const eventSource = new EventSource('/api/stream');
eventSource.onmessage = (event) => {
console.log('Update:', event.data);
};
Cocok untuk: Live feed, notifications, stock ticker
3. Long Polling
Client request, server tahan respons sampai ada data baru.
Cocok untuk: Fallback ketika WebSocket/SSE tidak didukung
Perbandingan
| Aspek | WebSocket | SSE | Long Polling |
|---|---|---|---|
| Arah | Bidirectional | Server → Client | Server → Client |
| Kompleksitas | Medium | Low | Low |
| Reconnect | Manual | Auto | Auto |
| Browser support | Baik | Baik | Universal |
Kesimpulan
Pilih berdasarkan use case. Untuk notifikasi sederhana, SSE sudah cukup. Untuk chat, pakai WebSocket.
Tomi Hartanto
Senior Software Engineer
Backend developer dengan 8+ tahun pengalaman membangun sistem scalable. Menulis tentang arsitektur backend, database, dan DevOps.
Tomi Hartanto
Senior Software EngineerBackend developer dengan 8+ tahun pengalaman membangun sistem scalable. Menulis tentang arsitektur backend, database, dan DevOps.
