Socket.IO Namespaces - 401-advanced-javascript-jv/seattle-javascript-401d30 GitHub Wiki
Socket.IO has two methods of segregating messages so you can direct them to one place or another. These two methods are called "namespaces" and "rooms." A Socket.IO server can have multiple namespaces (they act like endpoints for Socket.IO connections), and each namespace can optionally contain rooms.
Namespaces have a high degree of separation. They are defined on the server side and they open up a named route to which clients can connect. A Socket.IO client must connect specifically to a namespace and there is only one connection between a client and a namespace.
Rooms can optionally be defined inside the namespace. They allow for messages to be sent to only one specific part of a namespace. Multiple rooms can be joined by a single Socket.IO client, and will still only require that one client to operate.