Пространства имен позволяют вам создавать объекты с одинаковыми именами, но они будут разделены, так как они будут жить в разных пространствах имен, иначе называемых областями.
Это тот же мыслительный процесс, который вы должны использовать с пространствами имен Socket.IO. Если вы создаете модульное веб-приложение Node, вам нужно выделить пространство имен для различных модулей. Если вы посмотрите на наш код пространства имен, то увидите, что мы смогли прослушивать одни и те же точные события в разных пространствах имен. В Socket.IO событие соединения в соединении по умолчанию и событие соединения в пространстве имен / xxx различаются. Например, если у вас есть система чата и комментариев на вашем сайте, и вы хотите, чтобы оба работали в режиме реального времени, вы можете указать пространство имен. Это позволяет создавать целое приложение Socket.IO, которое живет только в своем собственном контексте.
Это также будет верно, если вы собираете что-то для упаковки и установки. Вы не можете знать, использует ли кто-то уже определенные события в пространстве имен по умолчанию, поэтому вы должны создать свое собственное и слушать там. Это позволяет вам не наступать на ноги любому разработчику, который использует ваш пакет.
Пространства имен позволяют нам разделять соединения на разные контексты. Мы можем сравнить это с комнатами, которые позволяют нам группировать соединения. Затем мы можем иметь такое же соединение и для других комнат.
Пространства имен позволяют создавать различные контексты для работы с Socket.IO. Комнаты позволяют группировать клиентские соединения внутри этих контекстов.