Setup Project
Backend: npm install express socket.io cors. Frontend: buat Vite React project dan npm install socket.io-client. Kita akan membangun chat app sederhana dengan rooms.
Server Setup
Buat HTTP server dengan Express, lalu attach Socket.IO ke HTTP server. Konfigurasikan CORS agar frontend bisa connect: cors: {origin: 'http://localhost:5173'}.
Event Handling Dasar
connection– user baru connectdisconnect– user terputusjoin-room– user bergabung ke roomsend-message– kirim pesanreceive-message– broadcast pesan ke room
Rooms dan Namespaces
Socket.IO rooms memungkinkan broadcast ke subset user. socket.join('room-name') memasukkan socket ke room, io.to('room-name').emit() broadcast ke semua member room.
Menyimpan Online Status
Simpan mapping socket-id ke user-id di Map. Saat disconnect, update status user menjadi offline dan broadcast ke room yang relevan.
Scaling Socket.IO
Untuk multiple server instances, gunakan Socket.IO Redis Adapter sehingga events bisa di-broadcast lintas server.