Joining rooms
In addition to namespaces, we can also use rooms in Socket.IO to ensure that our messages are only being delivered to the correct sockets.
Although each socket can only have a single namespace, these sockets can belong to multiple rooms. You can think of rooms as channels that a socket subscribes to in order to receive specific types of messages.
For example, if we built a programming application, the user may be interested in JavaScript and Node messages, but not Ruby or C#. With rooms, we can allow users to send messages to specific channels so that only the interested parties will receive it.
As rooms can only be joined if we know the name of the room, it creates a sort of sudo-security. But it is a bit of a hack because if someone can guess the room name and it is exposed to the client to join, they can join any arbitrary room.
In this recipe, we will demonstrate how a user can join a room.
Getting ready
In this recipe, we will use jQuery for some simple DOM manipulation.