Rooms: server-side groups
Rooms in Socket.IO are server-side groupings, like the rooms you built in Track 4. Use sio.enter_room(sid, 'general') to add a connection to a room; sio.emit(event, data, room='general') to broadcast. Rooms are lightweight — create them on demand, do not pre-declare.
Namespaces: client-side channels
Namespaces multiplex a single underlying connection into separate logical scopes. Connect to /chat and /notifications from the same browser, share one transport, but get two independent event streams with their own rooms and handlers. Useful when one app has multiple unrelated real-time concerns.
skip_sid prevents echo
When you broadcast to a room, the sender is in that room too. Pass skip_sid=sid to omit the sender from the broadcast. This is the Socket.IO equivalent of the exclude=ws parameter you wrote in Track 4.