Mit Namespaces können Sie Objekte mit demselben Namen erstellen, diese sind jedoch getrennt, da sie in verschiedenen Namespaces (auch als Bereiche bezeichnet) leben.
Dies ist der gleiche Denkprozess, den Sie mit Socket.IO-Namespaces haben sollten. Wenn Sie eine modulare Node-Webanwendung erstellen, möchten Sie die verschiedenen Module mit einem Namespace versehen. Wenn Sie auf unseren Namespace-Code zurückblicken, werden Sie feststellen, dass wir in verschiedenen Namespaces genau dieselben Ereignisse abhören konnten. In Socket.IO unterscheiden sich das Verbindungsereignis für die Standardverbindung und das Verbindungsereignis für einen / xxx-Namespace. Wenn Sie beispielsweise ein Chat- und Kommentarsystem auf Ihrer Website haben und möchten, dass beide in Echtzeit ausgeführt werden, können Sie jeweils einen Namespace verwenden. Auf diese Weise können Sie eine gesamte Socket.IO-Anwendung erstellen, die nur in ihrem eigenen Kontext lebt.
Dies gilt auch, wenn Sie etwas erstellen, das verpackt und installiert werden soll. Sie können nicht wissen, ob jemand bereits bestimmte Ereignisse im Standard-Namespace verwendet. Erstellen Sie daher eigene Ereignisse und hören Sie dort zu. Auf diese Weise können Sie keinem Entwickler auf die Zehen treten, der Ihr Paket verwendet.
Namespaces ermöglichen es uns, Verbindungen in verschiedene Kontexte zu zerlegen. Wir können dies mit Räumen vergleichen, die es uns ermöglichen, Verbindungen zu gruppieren. Wir können dann dieselbe Verbindung auch mit anderen Räumen verbinden.
Mit Namespaces können Sie verschiedene Kontexte erstellen, in denen Socket.IO arbeiten kann. In Räumen können Sie Clientverbindungen innerhalb dieser Kontexte gruppieren.