Read 19 Socket.io Namespaces and Rooms - 401-advanced-javascript-hanna-alemu/seattle-javascript-401d31 GitHub Wiki
What is a namespace in Socket-io?
Name-spaces are like endpoints or routes. We can think of them like channels in Slack. They help us separate concerns within applications by introducing a separation between communication channels.
What are rooms?
Rooms are like sublets of namespaces.Within each namespace, you can also define arbitrary channels that sockets can join and leave.
Joining and leaving
Join, as the name implies lets us subscribe to a channel, leave does the opposite.
socket.io-redis and socket.io-emitter
These help us send messages from anywhere outside the channel.