object-ungroupNamespace

Namespaces

Namespaces bieten eine logische Trennung von Funktionen und Ereignisbehandlung innerhalb des SocketIO-Servers. Sie ermöglichen verschiedenen Teilen einer Anwendung, unabhängig zu arbeiten, indem sie ein einzelne physische Verbindung.

circle-info

Namespaces erstellen keine separaten Socket-Verbindungen. Ein Client verbindet sich einmal und kann mehrere Namespaces über dieselbe zugrunde liegende WebSocket-/TCP-Sitzung betreten.


Standard-Namespace

Wenn sich ein Client verbindet, ohne einen Namespace anzugeben, wird er dem Standard-Namespace angehängt ("").

Configuration config = new Configuration();
config.setPort(9092);

SocketIOServer server = new SocketIOServer(config);
// Standard-Namespace existiert implizit
server.start();

Benutzerdefinierter Namespace

Benutzerdefinierte Namespaces trennen Anwendungsbelange und Ereignisbereiche.

SocketIOServer server = new SocketIOServer(config);

Namespace chat = server.addNamespace("/chat");
Namespace admin = server.addNamespace("/auth");

server.start();
circle-info

Bitte vergessen Sie nicht, "/" hinzuzufügen, es ist immer "/namespace" NICHT nur "namespace".

Jeder Namespace definiert:

  • seine eigenen Ereignis-Listener

  • seinen eigenen Verbindungslebenszyklus

  • seine eigene Autorisierungslogik

  • seine eigenen Broadcast-Operationen


Beispiel für einen öffentlichen Namespace (/chat)

Die /chat Namespace ist offen und ermöglicht allgemeine Nachrichtenübermittlung ohne Authentifizierung.

Server

Client


Beispiel für einen authentifizierten Namespace (/auth)

Die /auth Namespace beschränkt den Zugriff mithilfe einer Autorisierungslogik, die während der Verbindung ausgeführt wird.

Server

Autorisierter Client

Nicht autorisierter Client

Erwartete Serverausgabe:


Zuletzt aktualisiert

War das hilfreich?