Les espaces de noms vous permettent de créer des objets portant le même nom, mais ils seront distincts car ils vivront dans des espaces de noms différents, autrement appelés scopes.
C'est le même processus de réflexion que vous devriez avoir avec les espaces de noms Socket.IO. Si vous construisez une application web Node modulaire, vous voudrez créer des espaces de noms pour les différents modules. Si vous regardez notre code d'espace de noms, vous verrez que nous avons pu écouter les mêmes événements exacts dans différents espaces de noms. Dans Socket.IO, l'événement de connexion sur la connexion par défaut et l'événement de connexion sur un espace de nom /xxx sont différents. Par exemple, si vous avez un système de chat et de commentaires sur votre site et que vous voulez que les deux soient en temps réel, vous pouvez utiliser un espace de nom pour chacun. Cela vous permet de construire une application Socket.IO entière qui ne vit que dans son propre contexte.
Cela serait également vrai si vous construisiez un produit destiné à être emballé et installé. Vous ne pouvez pas savoir si quelqu'un utilise déjà certains événements dans l'espace de noms par défaut, vous devez donc créer le vôtre et l'écouter. Cela vous permet de ne pas marcher sur les plates-bandes des développeurs qui utilisent votre paquetage.
Les espaces de noms nous permettent de découper les connexions dans différents contextes. Nous pouvons comparer cela aux salles, qui nous permettent de regrouper des connexions et de faire en sorte qu'une même connexion puisse également rejoindre d'autres salles.
Les espaces de noms vous permettent de créer différents contextes dans lesquels Socket.IO peut travailler. Les chambres vous permettent de regrouper les connexions des clients à l'intérieur de ces contextes.